Я пытаюсь вычислить все простые числа от 0 до 100, и я получаю исключение с плавающей точкой, может ли кто-нибудь сказать мне, почему? (Если это помогает, я использую gcc)Почему я получаю «Исключение с плавающей запятой: 8»
#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;
}
Это очень плохой способ генерации простых чисел. Используйте [Сито Эратосфена] (https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) вместо –