YiMingC 发表于 2019-4-9 10:49:37

15课课后作业,不太理解错在哪了。

如图,代码如下。
要求是求10000以内的素数,甲鱼老师的答案是1229个,但我输出的结果对不上,不太理解是错在哪里了,麻烦大家帮我看看。谢谢!

#include <stdio.h>
main()
{
      int i=3,j,count=2;
      //初始化默认已经计算完1、2,都是素数,从3开始计算。

      for (;i<=10000;i++) //从3开始计算是否为素数
      {
                for (j=2;j<=i/2;j++)//从2开始作为除数
                {
                        if(i%j==0)//一旦被整除
                        {
                              count ++;//计数器加1
                              break;//跳出本轮循环,计算下一个数
                        }

                }
      }
      printf("10000以内共有%d个素数!\n",count);
}
~                                                                           
~                                    

Croper 发表于 2019-4-9 11:00:49

你先告诉我,素数的定义是什么,
然后你程序求的是什么

shake_a_tree@16 发表于 2019-4-9 11:07:15

你这输出的不是质数啊

shake_a_tree@16 发表于 2019-4-9 11:07:54

可以被整除的是合数,你循环计算的是合数的数量

shake_a_tree@16 发表于 2019-4-9 11:08:31

而且,1既不是质数也不是合数,你要先搞懂这些基本的数学知识呀

YiMingC 发表于 2019-4-9 11:26:58

丢人了 {:5_99:},
明白了,多谢大家~
页: [1]
查看完整版本: 15课课后作业,不太理解错在哪了。