C语言编程、求100以内所有质素数

2020-04-28 综合 112阅读
楼主大括号都未能匹配,{有两个,}有三个,编译就通过不了的。
刚写了份代码,已调试通过,供楼主参考:
#include
main(void)
{
int i,t;
for(i=1; i<=100; i++)
{
if(i == 1)
continue;
if(i == 2)
{
printf("%d,",i);
continue;
}
for(t=2; t <= i/2; t++)
{
if((i%t) == 0)
break;
}
if(t > i/2)
{
printf("%d,",i);
}
}
printf("\n");
return 0;
}
输出的结果为:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
再说说楼主代码中一些错误:
1.之前提到编译上就不能通过。{和}个数未能匹配。
2. if(100%i!=0) break; 该语句的含义是100除以i的余数不等于0则跳出循环,当为1时,就已经跳出循环了。而且这对于质素的判断是毫无意义的,可以删除。
3. for(t=1;t<=i;t++) 质数的判断的话,t应该是从2开始计数的,否则i%1肯定是等于0的。应修改为for(t=2; t<=i; t++)。此外,这里可以参考我的代码,t<=i/2即可,用以提高提升效率。
希望对楼主有所帮助。谢谢。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com