一道简单的C语言读程序的题,算了几遍还是算不明白,希望可以帮我解答!!写一下解题思路!

2025-04-30 06:59:34
推荐回答(1个)
回答1:

这个程序输出a,b之间的所有素数,并输出素数个数 for循环和if循环的大括号{}后不用加分号
最后加个getch();可以保留界面
#include
#include
main()
{ int a,b,m,k,i,n=0;
scanf("%d,%d",&a,&b);
for(m=a;m<=b;m++)
{ k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break; /*m依次除以2,3,。。。到m的开方为止,如果存在i可以整除,说明不是素数,跳出此if循环*/
if(i>k)/*若没有i可以整除,则i最后等于k+1>k,说明是素数 ,打印这个数,个数n加1*/
{ printf("%5d",m);
n++;
}
}
printf("total:%5d\n",n);
getch();
}