0
点赞
收藏
分享

微信扫一扫

Java 035. 圆形素数

infgrad 2022-01-28 阅读 42

035.圆形素数
数字 197 是一个圆形素数,这是因为所有它各位数的轮换 197,971 以及 719 也都是素数。
一百以下总共有十三个这样的素数,包括:2,3,5,7,11,13,17,31,37,71,73,79
和 97。求一百万以下有多少个这样的圆形素数?
答案:55
思路:最大有六位数,自身加上其轮换后的情况一共有六种情况。写一个函数判断是否为素数。写一个函数判断是否是圆形素数。(用substring)
代码如下:

public static boolean prime(int n){
        for(int i=2;i*i<=n;i++)
            if(n%i==0) return false;
        return true;
    }
    public static boolean cirprime(int n){
        int m;
        String s1;
        String s=Integer.toString(n);
//        if(!prime(n)) return false;
        for(int i=0;i<s.length();i++){
            s1=s.substring(i)+s.substring(0,i);
            m=Integer.valueOf(s1);
            if(!prime(m)) return false;

        }
        return true;
    }
    public static int num(){
        int n=0;
        for(int i=2;i<1000000;i++)
            if(cirprime(i)) n++;
        return n;
    }
    public static void main(String[] args) {
        System.out.println(num());
    }

程序运行结果:
在这里插入图片描述

举报

相关推荐

0 条评论