赞
踩
public class Mao {
public static void main(String[] args) {
int total=0;
for(int i=1001;i<9999;i++){
boolean ok=f(i);
if(ok){
boolean confirm=g(i);
if(confirm){
total++;
System.out.println("符合条件:"+i);
}
}
}
System.out.println("总计:"+total/2+"对");
}
// 试商判别法
public static boolean f(int l) {
if (l <= 1) {
return false;
}
int max = (int) Math.sqrt(l);
for (int i = 2; i < max + 1; i++) {
if (l % i == 0) {
return false;
}
}
return true;
}
//判断逆序列是否满足条件
public static boolean g(int n){
int m=n;
int sum=0;
int temp;
temp=m%10;
int flag;
if(temp%2==0||temp==5){
return false;
}
else{
flag=3;
sum=(int) (sum+Math.pow(10, flag)*temp);
m=m/10;
while(m>=10){
flag--;
temp=m%10;
if(temp%2==0||temp==5){
return false;
}
sum=(int) (sum+Math.pow(10, flag)*temp);
m=m/10;
}
if(m%2==0||m==5){
return false;
}
flag--;
sum=(int) (sum+Math.pow(10,flag)*m);
}
boolean ok=f(sum);
if(ok){
return true;
}
return false;
}
}
//答案给的11个,个人认为有11对,每一个肯定成对出现,不可能是单数,欢迎相互讨论
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。