【发布时间】:2015-10-26 19:42:59
【问题描述】:
我正在尝试计算 0 到 100 之间的所有质数,但我得到了一个浮点异常,谁能告诉我为什么? (如果有帮助,我正在使用 gcc)
#include <stdio.h>
int main(void)
{
int nums[100], i;
for(i=0;i<100;i++)
nums[i] = i;
int j,k,l,z;
for(i=1;i<100;i++)
for(j=2;j<100;j++)
if((nums[i] % nums[j]) == 0)
{
nums[j] = 0;
}
for(i=0;i<100;i++)
if(nums[i] != 0)
break;
for(z=0;z<100;z++)
{
for(k=i;k<100;k++)
for(l = (k+2);l < 100;l++)
if((nums[k] % nums[l]) == 0)
nums[k] = 0;
}
for(i=0;i<100;i++)
if(nums[i] != 0)
printf("%d,",nums[i]);
printf("\n");
return 0;
}
【问题讨论】:
-
这是一种非常糟糕的生成素数的方法。请改用Sieve of Eratosthenes
标签: c runtime-error primes