1. 程式人生 > >演算法題庫 迴文素數

演算法題庫 迴文素數

演算法題庫 迴文素數

題目

問題描述
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); }