关于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;
} 为什么我这样会求出10000里面有5000个素数? 本帖最后由 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:} 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]