溫馨提示×

溫馨提示×

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

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

java如何求圓周素數

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

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中找到圓周素數。關鍵在于判斷素數和生成循環排列的方法。通過合理的設計和優化,我們可以進一步提高程序的效率,找到更大范圍內的圓周素數。

向AI問一下細節

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

AI

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