您的位置:首页 > 编程语言 > Java开发

回文素数

2016-06-10 10:02 344 查看
题目:找出1000以内的既是回文数又是素数的数字,并输出。

创造两个函数,一个判断素数,一个判断回文数,都成立的条件下输出结果。开始老想着先判断回文数,然后返回到素数的函数里,这样可以节省时间,最后发现不会呐

,实现不了老出错。然后就试着把两个函数独立起来判断,都成立的条件下就输出结果。

源代码:

public class HuiWen3 {
public static void main(String args[]){
long begin=System.currentTimeMillis();
System.out.println("1000以内的回文素数如下:");
int count=0;
for(int i=1;i<1000;i++){
/*
* SuShu判断是不是素数,返回值为1,是素数
* HuiWen判断是不是回文数,返回值为一,是回文数
*/
if(SuShu(i)==1&HuiWen(i)==1){
System.out.print(i+" ");
count++;
if(count%7==0){
System.out.println();
}
}
}
long end=System.currentTimeMillis();
System.out.println();
System.out.println("耗时:"+(end-begin)+"ms");
}

private static int HuiWen(int i) {
//trans(i)把数i转换成字符串
String str = trans(i);
int ls = str.length();
for(int j=0;j<ls;j++){
if(str.codePointAt(j)!=str.codePointAt(ls-1-j)){
return 0;
}
}
return 1;
}

private static String trans(int i) {
int a=i;
String res="";
while(a!=0){
int b=a%10;
res=b+res;
a=a/10;
}
return res;
}

private static int SuShu(int i) {
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0)
return 0;
}
return 1;
}
}


运行结果:
1000以内的回文素数如下:

1  2  3  5  7  11  101  

131  151  181  191  313  353  373  

383  727  757  787  797  919  929  

耗时:3ms
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 素数 boolean