溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何實現可截素數

發布時間:2022-01-17 13:48:29 來源:億速云 閱讀:174 作者:小新 欄目:大數據

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提供了豐富的字符串操作和數學運算功能,使得實現這一算法變得相對簡單。通過這種方式,我們可以輕松地找到并驗證可截素數。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女