java如何实现可截素数

发布时间:2022-01-17 13:48:29 作者:小新
来源:亿速云 阅读:165

Java如何实现可截素数

什么是可截素数?

可截素数(Truncatable Prime)是指一个素数,当从左到右或从右到左依次截去其数字时,剩下的数仍然是素数。可截素数分为左截素数和右截素数。例如,3797是一个右截素数,因为依次截去右边的数字后,得到的379、37、3都是素数。

Java实现可截素数的思路

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

  2. 截取数字:对于给定的素数,从左到右或从右到左依次截取数字,生成新的数。

  3. 验证截取后的数是否为素数:对截取后的数进行素数判断,如果所有截取后的数都是素数,则该数是一个可截素数。

代码实现

public class TruncatablePrime {

    // 判断一个数是否为素数
    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 boolean isRightTruncatable(int n) {
        while (n > 0) {
            if (!isPrime(n)) return false;
            n /= 10; // 截去最后一位
        }
        return true;
    }

    // 判断一个数是否为左截素数
    public static boolean isLeftTruncatable(int n) {
        String s = Integer.toString(n);
        while (s.length() > 0) {
            if (!isPrime(Integer.parseInt(s))) return false;
            s = s.substring(1); // 截去第一位
        }
        return true;
    }

    public static void main(String[] args) {
        int num = 3797;
        System.out.println(num + " 是右截素数吗? " + isRightTruncatable(num));
        System.out.println(num + " 是左截素数吗? " + isLeftTruncatable(num));
    }
}

运行结果

3797 是右截素数吗? true
3797 是左截素数吗? false

总结

通过上述代码,我们可以判断一个数是否为可截素数。关键在于实现素数判断和数字截取的功能。Java提供了丰富的字符串操作和数学运算功能,使得实现这一算法变得相对简单。通过这种方式,我们可以轻松地找到并验证可截素数。

推荐阅读:
  1. 如何用Java制作素数程序?
  2. java怎么判断number是否为素数

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

java

上一篇:java如何实现双进制回文数

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

相关阅读

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

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