我一直试图阻止复合生成器与素数生成器一起工作,但我似乎无法弄清楚如何使用它。每次我将另一部分应用于{{1下的代码如果没有if statment我会得到一个其他的,然后整个程序停止工作。对我的问题有任何建议吗?
if (isPrime) { count++;
答案 0 :(得分:0)
您可以重复从System.out.println("Your Prime numbers are: \n");
到while循环结束的代码,但将if(isPrime)
更改为if(!isPrime)
我不建议这样做的原因是因为你在所有数字中循环两遍并复制了很多应该在他们自己的方法中的代码。
如果您知道如何使用List(),则可以在测试数字是否为素数后,将所有素数添加到一个列表,将所有复合数字添加到另一个列表。然后担心循环遍历列表以显示每个列表的编号。
这种方法的缺点是如果用户输入的数字非常大,可能会占用大量内存。
如果首先显示复合材料或素数并不重要,我会像下面这样组合两者。
//Get user number
while (count < user)
{
if (!isPrime(count)) //isPrime should be another method similar to your for loop which returns either true or false.
{
//Print the number, it is composite.
}
else
{
//save the number to a List of primes
}
}
//Print out all the primes saved in the List