S1E15求10000以内素数问题
#include<stdio.h>int main()//求 10000 以内的素数个数。
{
int i = 10000, sum = 0;
_Bool flag = 1;
while (i > 1)
{
int k = (int)sqrt((double)i);
for (int j = 2; j < k; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
sum++;
}
else
{
flag = 1;
}
i--;
}
printf("10000以内共有%d个素数!\n", sum);
return 0;
}
正确答案应该是1229个,这为什么多了几个{:10_243:} double k = (double) sqrt(i);
for (int j = 2; j <= k; j++) 万千只cnm 发表于 2021-7-25 11:48
#include <stdio.h>
#include <math.h>
int main()
{
int count = 4; // 已知2,3,5,7是素数
int i, j, k;
_Bool flag = 1;
for (i = 9; i < 10000; i++)
{
k = (int)sqrt((double)i);
for (j = 2; j <= k; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
count++;
}
else
{
flag = 1;
}
}
printf("10000以内共有%d个素数!\n", count);
return 0;
}
小甲鱼用的是int型的,为什么他的程序跑出来是正确的值啊? 万千只cnm 发表于 2021-7-25 11:48
{:10_284:}我突然看到了,应该是小于等于。
页:
[1]