[英]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.