谢谢大家,我终于明白了~另外充一句:如果循环里没遇到可整除的数,循环结果他的结果已是i=n+1,即i>n,执行printf("%d为素数",m);
大家好,我是C语言初学者,我现在遇到点总题想请教下大家, 例:判断输入数是否为素数。 # include "stdio.h" void main() {int m,n,i; scanf("%d\n",&m); n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0) break; if(i>k) printf("%d为素数",m); else printf("%d为合数",m);} 我想请问的是标注为红色字区域中,“为什么要i>k,才为素数”,例如我输入m=18,则K=4,循环中i=2时能整除,跳出循环,执行i>k条件下m为素数,但9比4大,说明18也不是素数呀,所以我有些想不通,请大家帮帮忙!谢谢!
那把printf放在循环里面不就好了
if (m%i==0)
printf('合数\n");
else printf("素数\n");
[此贴子已经被作者于2004-07-28 16:55:32编辑过]