java如何求圆周素数

发布时间:2022-01-17 13:47:19 作者:小新
来源:亿速云 阅读:136

Java如何求圆周素数

圆周素数(Circular Prime)是指一个素数,其所有循环排列也都是素数。例如,197是一个圆周素数,因为197、971和719都是素数。在Java中,我们可以通过编写一个程序来找到圆周素数。

实现步骤

  1. 判断素数:首先,我们需要一个方法来判断一个数是否为素数。素数是指只能被1和它本身整除的数。

  2. 生成循环排列:对于一个给定的数,我们需要生成它的所有循环排列。例如,197的循环排列是197、971和719。

  3. 检查所有排列是否为素数:对于每个循环排列,我们需要检查它是否为素数。如果所有排列都是素数,那么这个数就是圆周素数。

  4. 输出结果:最后,我们将所有找到的圆周素数输出。

代码实现

import java.util.HashSet;
import java.util.Set;

public class CircularPrime {

    // 判断一个数是否为素数
    public static boolean isPrime(int n) {
        if (n < 2) return false;
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) return false;
        }
        return true;
    }

    // 生成一个数的所有循环排列
    public static Set<Integer> getCircularPermutations(int n) {
        String s = Integer.toString(n);
        Set<Integer> permutations = new HashSet<>();
        for (int i = 0; i < s.length(); i++) {
            String rotated = s.substring(i) + s.substring(0, i);
            permutations.add(Integer.parseInt(rotated));
        }
        return permutations;
    }

    // 判断一个数是否为圆周素数
    public static boolean isCircularPrime(int n) {
        Set<Integer> permutations = getCircularPermutations(n);
        for (int p : permutations) {
            if (!isPrime(p)) return false;
        }
        return true;
    }

    public static void main(String[] args) {
        int limit = 1000; // 设置查找范围
        for (int i = 2; i < limit; i++) {
            if (isCircularPrime(i)) {
                System.out.println(i);
            }
        }
    }
}

运行结果

运行上述代码,程序将输出在指定范围内的所有圆周素数。例如,在1到1000的范围内,程序将输出以下圆周素数:

2
3
5
7
11
13
17
31
37
71
73
79
97
113
131
197
199
311
337
373
719
733
919
971

总结

通过上述步骤和代码实现,我们可以在Java中找到圆周素数。关键在于判断素数和生成循环排列的方法。通过合理的设计和优化,我们可以进一步提高程序的效率,找到更大范围内的圆周素数。

推荐阅读:
  1. java求圆周率800位代码分享
  2. Ruby中求50之内的素数方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:如何使用java求各位数字的五次幂

下一篇:JavaScript如何实现环绕鼠标旋转效果

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》