演算法題庫 迴文素數
阿新 • • 發佈:2018-12-30
演算法題庫 迴文素數
題目
問題描述
10301年主要的數字。它有一個特徵,把數字倒過來,或者它本身,有這個特徵的素數,我們叫它迴文素數。這些都是五位數的迴文。請計算一下像這樣的五個數字的迴文有多少個?請填寫代表數字的整數,注意不要填寫任何額外資訊,如描述或解釋性文字,或列出所有迴文素數。
解題思路
1、暴力破解。遍歷所有五位數。
2、定義一個計數器sum,分兩步判斷數字,是迴文數進入下一步判斷是否為素數,都是則計數器加一
3、輸出計數器sum。
//java程式碼
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;//計數器儲存迴文素數的個數
for (int i = 10001; i < 100000; i = i + 2) {//偶數肯定不是素數所以每次迴圈
String str = String.valueOf(i);//將數字轉換成字串
char[] c = str.toCharArray();//將字串轉化為字元陣列
boolean flag = true;
for (int j = 0; j < c.length / 2; j++) {
if (c[j] != c[c.length - 1 - j]) {//判斷首尾字元是否相等
flag = false;//有一個不相同。flag為錯並跳出迴圈
break;
}
}
//如果是迴文數則判斷是不是素數
if (flag) {
for (int k = i - 1; k > 1; k--) {
if (i % k == 0) {
flag = false;//不是素數。flag為錯並跳出迴圈
break;
}
}
//如果flag為true就代表i即是迴文數又是素數。
if(flag) {
sum++;
}
}
}
System.out.println(sum);
}