我对 Java 或多或少是完全陌生的。我想我会尝试编写一个简单的循环来将 100 以下的素数列表输出到控制台中,作为练习 - 但是正如您可能通过这个问题的标题可以看出的那样,它给出的只是 2,仅此而已。我正在使用 Eclipse 来编辑和运行我的代码。这是:
public class PrimeGen {
public static void main(String[] args) {
for (int num = 1, // number to test
testfac = 1, // start factor to divide into num
numfacs = 0; // number of factors in current iteration of num
num <= 100;
num++)
{
while (testfac <= num){
if (num/testfac == Math.round(num/testfac)) numfacs++; // add 1 to numfacs if it divides evenly
testfac++;
}
if (numfacs == 2) System.out.println(num);
numfacs = 0;
testfac = 1;
}
}
}
如果有人能帮助我解决这个问题,我将非常感激。谢谢!
最佳答案
将 if (num/testfac == Math.round(num/testfac))
替换为 if (num % testfac == 0)
。
问题是 Math.round(num/testfac)
将始终等于 num/testfac
因为您正在进行整数除法。使用 % 检查整除性。
关于java - 质数循环仅将 "2"写入控制台。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719524/