1. 程式人生 > >每日一題——迴文素數

每日一題——迴文素數

問題描述:
迴文素數既是素數,也是迴文數。例如,131是素數,也是迴文數,如313和757。
編寫一個顯示前100個迴文素數的程式。
每行顯示10個數字,正好用一個空格隔開,如下所示:
2 3 5 7 11 101 131 151 181 191
313 353 373 383 727 757 797 919 929……

public class PalindromicPrime
{
	/*
	 * 判斷是否為素數
	 * @return 是返回true,不是返回false
	 */
	public static boolean isPrime(int num) {
		for(int i = 2;i < num;i++) {
			if(num % i == 0)
				return false;
		}
		return true;
	}
	/*
	 * 判斷是否迴文
	 * @return 是返回true,不是返回false
	 */
	public static boolean isPalindrome(int num) {
		String str = Integer.toString(num);
		for(int i = 0;i < str.length()/2;i++) {
			if(!(str.substring(i, i + 1).equals(str.substring(str.length()- i -1,str.length() - i)))) {
				return false;
			}
		}
		return true;
	}
	/*
	 * 列印前100個迴文素數
	 */
	public static void printPalindromicPrime() {
		int count = 0;
		int num = 2;
		while(count >= 0) {
			if(isPrime(num) && isPalindrome(num)) {
				count++;
				System.out.print(num + " ");
				if(count % 10 == 0)
					System.out.println();
			}
			if(count == 100)
				break;
			num++;
		}
	}
	public static void main(String[] args)
	{
		printPalindromicPrime();
	}
}