S1E15 素数
file:///C:/Users/CC/Desktop/1.png#include <stdio.h>
int main()
{
long long i , num;
_Bool flag = 1;
printf("请输入一个整数:");
scanf("%lld",&num);
for(i=2;i<num/2;i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
if(flag)
{
printf("%lld是一个素数!\n",num);
}
else
{
printf("%lld不是一个素数!\n",num);
}
printf("i = %lld\n",i);
return 0;
}
大家好,这是老师在上课讲的。
为什么我这里输123 ,i=3,我算不明白 。 输入13,i=6,能帮我看看嘛。 本帖最后由 jackz007 于 2022-9-26 20:48 编辑
for(i=2;i<num/2;i++)
num = 13 的时候 i = 6,由于,13/2=6 说明循环到头都没有找出能整除 num 的 i。
num = 123 的时候 i = 3,3 显然不等于 123/2,循环是在 i = 3 的时候结束的,说明 123 最小的因子是 3,同时,最大因子是 123/3=41。
jackz007 发表于 2022-9-26 20:42
13/2=6 说明循环到头都没有找出能整除 num 的 i。
原来是这样,谢谢!!~ 123 % 3 == 0 所以 i=3
13 % 2 ..... 13%6 都!=0 所以 i =6 ba21 发表于 2022-9-26 20:50
123 % 3 == 0 所以 i=3
13 % 2 ..... 13%6 都!=0 所以 i =6
好滴,谢谢{:10_298:}
页:
[1]