跪求,C++,程序设计,判断素数,跪求,跪求,急急急急急急急急急急急急急急急急急急急急急急急急急急急急

[复制链接]
查看11 | 回复2 | 2011-4-17 02:15:09 | 显示全部楼层 |阅读模式
#include
#include
void main()
{
int m,i,k;
printf("please enter a intetger number:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2; ik) printf("%d is a prime number.\n",m);
else printf("%d is not a prime number .\n",m);
}
求高手分析,f(m%i==0) break;
if(i>k) printf("%d is a prime number.\n",m);
else printf("%d is not a prime number .\n",m);是什么意思啊,我老是看不明白,我们用的是谭浩强的书籍,前面的我能看懂,但是,后面这几句我是实在看不明白,求高手指点啊,望高手指点啊,最好说详细一点啊,跪求高手啊,我的QQ是1725344108,如果高手可以加我QQ更好,我大2 ,谢谢啊
书本上这么说的,如果M可以被i整除,则M必然不是素数,不必进行下去,此时i的值必然小于或等于K,不必再进行下去,如果M不能被2到K任意整数整除,则M是素数,此时,完成最后一次循环后,使I加一,因此,i的值就是K+1,这时循环才终止,在循环结束之后判别i的值是否大于或等于K+1,若是,则表明被2到K之间的任意整数整除过,因此输出是素数,。。。。。我就是不是很理解这短话,谢谢啊

回复

使用道具 举报

千问 | 2011-4-17 02:15:09 | 显示全部楼层
for(i=2; ik) printf("%d is a prime number.\n",m);
else printf("%d is not a prime number .\n",m);这两句话不搭边。if(i>k) printf("%d is a prime number.\n",m);
else printf("
回复

使用道具 举报

千问 | 2011-4-17 02:15:09 | 显示全部楼层
if(m%i==0) break; 这个就是判断有没有比它小的数能够整除它,若是有的话的. 那么除了1和他本身之后还有其它约数,根据素数定义说明他不是素数 if(i>k) printf("%d is a prime number.\n",m); 判断它有没有提前退出循环, 若是提前了,那么 if(m%i==0) break;这个条件为真,也就是有其它
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行