int main(void)
{
int num,num1,i;
printf("请输入一个数:");
scanf("%d",&num1);
num = num1;
for(i = 2;i < num1/2;i++)
num = num%i;
while(num == 0)
{
break;
}
if(num)
{
printf("%d是一个素数",num1);
}
else
{
printf("%d不是一个素数",num1);
}
}
这样子为什么还出错? num = num%i;
while(num == 0)
{
break;
}
这段程序:能整除的时候while为真执行后面的break跳出,while为假的时候不执行,结果就是不管真假都不执行,那写这个是什么意思呢? 他把其中的一个值给舍弃掉了,这样子也能得到着正确的结果。 #include<stdio.h>
int main(void)
{
int num,num1;
printf("请输入一个数:");
scanf("%d",&num);
num = num1;
for(i = 2; i < num/2;i++)
{
while(num % i == 0)
{
printf("%d不是一个素数",num1);
return 0;
}
}
printf("%d是一个素数",num1);
return 0;
} #include<stdio.h>
int main(void)
{
int num,num1,i;
printf("请输入一个数:");
scanf("%d",&num1);
num = num1;
for(i = 2;i < num/2;i++)
{
if (num % i == 0)
{
printf("%d不是一个素数",num1);
return 0;
}
}
printf("%d是一个素数",num1);
return 0;
}
这段代码是对的。 喝水卡牙 发表于 2021-7-6 00:17
自己添加 printf 打印num ,i的值,就会发现问题。计算1,2,3都没问题,计算4开始,num==9,9%2==1 ...
不好意思,反对点错了,我在手机上看的,误点
页:
1
[2]