我正在《Java 如何编程》一书中做练习。练习要求我编写一个方法来确定一个数字是否是“素数”。 (“素数”是一个正整数,只能被它本身和 1 整除)。然后我应该在显示 10 000 以内所有整数的应用程序中实现该方法。 我使用“double-values”来测试余数是否为0,以测试可除性。 不管怎样,我只是不让程序工作,它显示从 3 开始的所有数字,并以每个数字显示的次数递增(3 44 555 等)。谁能告诉我我做错了什么?
代码如下:
public class Oppgave625
{
public static void main(String[] args)
{
for(double a = 2; a <= 10000; a++)
{
for(double b = 1; b < a; b++)
{
if (prime(a, b) !=0)
{
System.out.printf("%.0f ", prime(a, b));
}
}
}
}
static double prime(double x, double y)
{
if (x % y != 0)
{
return x;
}
else
{
return 0;
}
}
}
最佳答案
使用 int 代替。 double 不适合此目的
您可能想阅读this article了解 float 的 % 运算符的使用。
关于java - 嵌套 "FOR-loops"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466329/