这是我的代码。 我知道这可能是非常复杂的愚蠢错误,但我正在学习! 无论n是什么,它总是只输出2。
public static void prime(int n)
{
int i;
int b = 1;
int d;
int a =0;
for (i=1; i!=n; i++){
while (b!=i){
d = i / b;
if (d == i)
a = 1;
else
a = 2;
b++;
}
if (a==1)
System.out.println( i);
}
答案 0 :(得分:2)
我不知道你的奇怪的while循环在查找一个数字是否为素数时会发生什么。
您应该检查n
是否可以i
与2
之间的任何数字sqrt(n)
整除。
您使用条件if (n%i==0)
检查它。
答案 1 :(得分:0)
要检查数字是否为素数,您应该检查该数字是否可以被1整除。这是一个简单的代码片段。
public static void prime (int n){
int countZero=0; //counts the number of times n is divisible by another number
//@var div is the divisor
for (int div=1;div<=n;div++){
if (n%div==0){
countZero++;
}
//n is divisible by 1 and itself
if (countZero==2){
System.out.println(n+", is a prime number");
}