2 3 5 7 11 101 131 151 181 191
313 353 373 383 727 757 787 797 919 929
- public class C1
- {
- public static void main(String[] args)
- {
- int countnumber = 0 ;
- int number = 2;
- while(countnumber < 100)
- {
- int remainder = 0;
- int factor = 0 ;
- for(int i = 1 ; i <= number ; i++)//計算此數的因數個數
- {
- remainder = number % i;
- if(remainder == 0)
- {
- factor = factor + 1;
- }
- }
- if(factor == 2)
- {
- boolean a = isPalindrom(number);//呼叫 isPalindrom 判斷此數是否為迴文數
- if(a == true)
- {
- countnumber++;//找到1個數所以要先加一
- //控制每行只印出10個數
- if(countnumber % 10 == 0)
- {
- System.out.println(number + " ");
- number++;
- //找到數字之後榆樹要記得將餘數和因數個數清0
- remainder = 0;
- factor = 0 ;
- }
- else if(countnumber % 10 != 0)
- {
- System.out.print(number + " ");
- number++;
- //找到數字之後榆樹要記得將餘數和因數個數清0
- remainder = 0;
- factor = 0 ;
- }
- }
- }
- number++; //如股不是的話也要++才會換到下一個數
- }
- }
- public static boolean isPalindrom(int number)
- {
- int inputnumber = number ;//要先將原本輸入的值存近來,不然之後會被覆蓋掉。 需特別注意!!!
- int[] array = new int[10];
- int i = 0;
- int z = number;
- int count = 1;
- int t = 1;
- int result = 0;
- boolean bool = new Boolean(true) ;
- while(number > 0)
- {
- int a = number % 10;
- array[i] = a;
- z = number / 10 ;
- number = z;
- i++ ;
- count = count + 1;
- }
- for(int a = count - 2 ; a >= 0 ; a--)
- {
- int c = array[a] * t ;
- result = result + c;
- t = t * 10;
- }
- if( inputnumber == result )
- {
- bool = true ;
- }
- else if(inputnumber != result)
- {
- bool = false ;
- }
- return bool;
- }
- }
沒有留言:
張貼留言