赞
踩
问题描述:
编写程序找出1-1000之间的所有可逆素数(可逆素数是指一个素数的各位数值顺序颠倒后得到的数仍为素数,如133、311)。
- public class Main {
-
- public static void main(String[]Args){
- int count=0; //计数
- for(int i=1 ; i<1000 ; i++){ //设置范围
- if(isPrimeNum(i)&&isPrimeNum(fanxuNum(i))){ //输出条件:本身和反序数都是素数
- System.out.printf("%3d ",i);
- count++;
- if(count%10==0){ //满十个数 换行
- System.out.println();
- }
- }
- }
-
- }
- public static boolean isPrimeNum(int a){ //判断是否是素数
- for(int i=2 ; i<=Math.sqrt(a) ; i++){
- if(a%i==0){
- return false;
- }
- }
- return true;
- }
- public static int fanxuNum(int a){ //求反序数
- int length1 = (a+"").length();
- if(length1==1){
- return a;
- }
- if(length1==2){
- int x = a/10;
- int y = a%10;
- return y*10+x;
- }
- else{
- int x = a/100;
- int y = a/10%10;
- int z = a%10;
- return x+y*10+z*100;
- }
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。