我正在处理一些简单的问题。 我想质数C - 使用此算法获取素数
我会用这个算法
和...我完成代码编写这样的。
int k = 0, x = 1, n, prim, lim = 1;
int p[100000];
int xCount=0, limCount=0, kCount=0;
p[0] = 2;
scanf("%d", &n);
start = clock();
do
{
x += 2; xCount++;
if (sqrt(p[lim]) <= x)
{
lim++; limCount++;
}
k = 2; prim = true;
while (prim && k<lim)
{
if (x % p[k] == 0)
prim = false;
k++; kCount++;
}
if (prim == true)
{
p[lim] = x;
printf("prime number : %d\n", p[lim]);
}
} while (k<n);
欲检查多少重复这个代码(X + = 2; LIM ++; k ++;) 所以我用XCOUNT,limCount,kCount变量。
当input(n)为10时,结果为x:14,lim:9,k:43错误的答案。
答案是(14,3,13)。
我写代码不好吗? 告诉我正确的点PLZ ...
最明显的不同是没有'for'循环使用'i' –
第一次到达'sqrt(p [lim])'''p [1]'这是未初始化的。 –
嗯......我想'lim'substitues'我' – COOOPS