簡體   English   中英

Java中的BigIntegers循環

[英]For Loop with BigIntegers in Java

我正在嘗試生成十個大質數。 這是我的代碼。 我用小數字看是否有效。

    public static void primeGenerator(){
    BigInteger[] primeList = new BigInteger[10];
    BigInteger startLine = new BigInteger("1");
    int startPower = 1;
    BigInteger endLine = new BigInteger("10");
    int endPower = 2;
    int j = 0;
    for (BigInteger i = startLine.pow(startPower);
            i.compareTo(endLine.pow(endPower)) <= 0;
            i = i.add(BigInteger.ONE)) {

        if(checkPrimeFermat(i) == true && j<10)
            primeList[j] = i;
            j++;
            continue;

    }

    System.out.print(primeList[3]);

}

輸出:

primeList[0] = null primeList[1] = 2 primeList[2] = 3 primeList[3] = null

我想生成的輸出:

primeList[0] = 2 primeList[1] = 3 primeList[2] = 5 primeList[3] = 7

當j出現時,4代碼沒有檢查5並在此處停止。 我怎么解決這個問題? 我用junit測試了checkPrimeFermat,它的工作方式。

這將起作用:

public static void primeGenerator() {
        BigInteger[] primeList = new BigInteger[10];
        BigInteger startLine = new BigInteger("1");
        int startPower = 1;
        BigInteger endLine = new BigInteger("10");
        int endPower = 2;
        int j = 0;
        for (BigInteger i = startLine.pow(startPower); i.compareTo(endLine
                .pow(endPower)) <= 0; i = i.add(BigInteger.ONE)) {
            if (checkPrimeFermat(i) == true && j < 10) {
                primeList[j] = i;
                j++;
            }
        }

        System.out.print(Arrays.toString(primeList));

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM