wankun123 发表于 2018-9-2 19:36:36

关于10000求有多少个素数

本帖最后由 wankun123 于 2018-9-2 20:24 编辑

#include <stdio.h>


int main()
{
        int i,j=0;
        for(i=0;i<10000;i++)
        {
        if(i%2!=0)
        {
        j++;
       
        }
       
        }
        printf("10000里面有%d个素数",j);
       

      return 0;
}

wankun123 发表于 2018-9-2 19:37:08

为什么我这样会求出10000里面有5000个素数?

gary冥霧 发表于 2018-9-2 20:08:43

本帖最后由 gary冥霧 于 2018-9-2 20:10 编辑

wankun123 发表于 2018-9-2 19:37
为什么我这样会求出10000里面有5000个素数?

因為 if(i%2!=0)//你這個意思是把被2整除的數印出來並不是把素數印出來
      {
      j++;
正確程式碼如下
#include <stdio.h>
#include <stdlib.h>

int main()
{   
   
    int i, j, sum;
    for(i = 2;i < 10000;i++)
    {
            int IsPrime = 1;//是素數的情況下   
      for(j = 2;j < i;j++)
      {
            if(i%j == 0)
            {
                IsPrime = 0;
                break;
            }

      }
      if(IsPrime == 1)
      {
            sum++;//sum代表每多1個素數就加1
      }
    }
    printf("素數有%d", sum);
    return 0;
}
不知道是否解決您的問題,同時也請您找出最佳解答!!感謝{:5_108:} {:5_109:}

claws0n 发表于 2018-9-2 20:11:18

wankun123 发表于 2018-9-2 19:37
为什么我这样会求出10000里面有5000个素数?

{:10_245:} 你这个纯属累加,要有类似的判断
int n;      
int i;
for(i = 2; i <= n-1; i++)
{
    if(n%i == 0)
    {
      isprime = 0;
      break;
    }
}
页: [1]
查看完整版本: 关于10000求有多少个素数