備戰藍橋杯(真題)第五屆第三題(迴文素數)
阿新 • • 發佈:2019-01-01
迴文素數
10301是個5位的素數。它有個特點,把數字倒過來還是它本身,具有這樣特徵的素數,我們稱之為:迴文素數。10501
10601
11311
這些都是5位的迴文素數。
請你計算一下,像這樣的5位數的迴文素數,一共有多少個?
請填寫這個表示個數的整數,注意不要寫任何其它多餘的內容,比如說明或解釋文字,也不要列出所有的迴文素數。
分析:這題的方法有很多種,我來介紹其中一個思路,首先判斷10000---99999中有那些素數?
接著我們分析,那些素數是迴文素數?
在分析迴文素數的時候,我們知道,第一位和第五位相同 ,第二位和第四位相同----這是解決本題的關鍵
public class C {
public static void main(String[] args) {
int s=0; //計數
for(int i=10000;i<=99999;i++)
{
if(f(i)==1)
{
//System.err.println(i);
if(f2(i)==1)
{
System.out.println(i);
s++;
System.out.println(s);
}
}
}
}
public static int f(int n) //判斷素數的方法
{
for(int i=2;i<n;i++)
{
if(n%i==0)
{
return 0; //不是素數
}
}
return 1; //是素數
}
public static int f2(int n) //判斷迴文素數的方法
{
String s=n+""; //將int型別轉化為String型別 然後進行比較
if(s.substring(0,1).equals(s.substring(4,5))&&s.substring(1,2).equals(s.substring(3,4)))//字串比較用equals
{
return 1; //是迴文素數
}
return 0; //不是迴文素數
}
}