C语言求1000以内素数

2024-11-22 04:39:45
推荐回答(2个)
回答1:

你程序的问题出现在
while(num2 {
num2=2;
num=num1%num2;
num2++;
a=isPrime(num);
if(a==1)
printf("%5d",num1);
}
假设num1=4的时候,你没次进循环num2=2,num2++,num2=3;再次进循环num2=2,num2++,num2=3;因此一直有num2

回答2:

while(num2 {
num2=2;
num=num1%num2;
num2++;
a=isPrime(num);
if(a==1)
printf("%5d",num1);
}
这段程序第三行有错,
把num2 = 2;去掉就好了
因为每循环一次都对num2赋值,num = num1 % num2;中num2始终为2,循环无限进行中……