Java趣味编程案例14----可逆素数
可逆素数:一个数本身和它各位数值颠倒顺序后得到的数仍为素数,如113,311.
求1–900之间的所有可逆素数。
分析:因为要判断一个数和它顺序颠倒后的数是不是素数,所以我们写一个方法判断是不是素数,然后再写一个将数据颠倒顺序的方法。
反序:借助字符串实现反序。
(我发现字符串是比较万能的,比如我们要求一个整数有多少位,我们可以把它和一个空的字符串连接然后求字符串的长度,得到的就是这个整数的长度。同样,在这里我们把数值转成字符串,然后再利用StringBuilder的reverse方法反转字符串,最后再把字符串转成整型。)
代码如下:
package _4InterestingPrime;
public class _4_4 {
public static void main(String[] args) {
int count=0;
for(int i=2;i<1000;i++){
//判断这个数和倒叙后的数是不是素数
if(isPrime(i)&&isPrime(Reverse(i))){
System.out.print(i+" ");
count++;
if(count%10==0){
System.out.println();
}
}
}
}
//判断是不是素数
public static boolean isPrime(int n){
for(int i=2;i<=Math.sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
//反转字符串的方法,并且转成整型值
public static int Reverse(int n){
String str=n+"";
String reverse=new StringBuffer(str).reverse().toString();
//字符串转成整型
int number=Integer.parseInt(reverse);
return number;
}
}
结果: