[b]public static boolean isPrime(int num)
{
int i;
int temp=0;
for(i=2;i<num;i++)
{
while((num%i)==0)
{
temp++;
}
}
if (num != 1 && temp<2) // 如果只有一次整除,那么该数为素数
{
System.out.print(true);
}
if(temp>=2)
{
System.out.print(false);
}
return false;
}
为什么不是素数不会输出false;但是是素数会输出true;
{
int i;
int temp=0;
for(i=2;i<num;i++)
{
while((num%i)==0)
{
temp++;
}
}
if (num != 1 && temp<2) // 如果只有一次整除,那么该数为素数
{
System.out.print(true);
}
if(temp>=2)
{
System.out.print(false);
}
return false;
}
为什么不是素数不会输出false;但是是素数会输出true;
for(i=2;i<num;i++)
{
while((num%i)==0)
{
temp++;
}
}
不能嵌套while循环。当这个num等于6的时候for循环第二轮的时候,i等于3,那就进入while的死循环出不来了,因为6%3==0永远成立。
把while换成if即可,否则你这个程序的bug太大太严重。至于为什么是素数就输出true不是就输出false你可以自己分析啊,带一个数字进去,看看经历了哪些不就懂了吗