C语言编程找出100以内素数

生活 时间:2026-04-02 09:28:05 阅读:9232
C语言编程找出100以内素数

最佳回答

秀丽的小蚂蚁

无聊的外套

2026-04-02 09:28:05

#include #include void main () { int x,i,j; for(i=2;i<100;i++) {1 x=1; for(j=2;j<=sqrt(i);j++) if (i%j==0) { x=0; break; } if (x) printf ("%d\n",i); } }

最新回答共有4条回答

  • 哭泣的面包
    回复
    2026-04-02 09:28:05

    #include #include void main () { int x,i,j; for(i=2;i<100;i++) {1 x=1; for(j=2;j<=sqrt(i);j++) if (i%j==0) { x=0; break; } if (x) printf ("%d\n",i); } }

  • 活泼的柜子
    回复
    2026-04-02 09:28:05

    #include #include main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=2;m<=100;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) {printf("%-4d",m);h++; //打印素数 if(h%10==0) printf("\n"); } leap=1; } printf("\nThe total is %d",h); //打印素数总数 }

  • 呆萌的戒指
    回复
    2026-04-02 09:28:05

    楼主大括号都未能匹配,{有两个,}有三个,编译就通过不了的。 刚写了份代码,已调试通过,供楼主参考: #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即可,用以提高提升效率。 希望对楼主有所帮助。谢谢。

上一篇 宇宙共振共鸣机能

下一篇 “出名要趁早”这句话有什么具体含义?