回文素数
2016-06-10 10:02
381 查看
题目:找出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
创造两个函数,一个判断素数,一个判断回文数,都成立的条件下输出结果。开始老想着先判断回文数,然后返回到素数的函数里,这样可以节省时间,最后发现不会呐
,实现不了老出错。然后就试着把两个函数独立起来判断,都成立的条件下就输出结果。
源代码:
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树