I\'m trying to calculate all the prime numbers from 0 - 100 and I\'m getting a floating point exception, could anyone tell me why? (If it helps I\'m using gcc)
Well, it's really hard to understand what your code is doing. But still
for(i=1;i<100;i++)
for(j=2;j<100;j++)
if((nums[i] % nums[j]) == 0)
{
nums[j] = 0;
}
After this, many values of nums
will be 0
.(You can print and check)
So, Later when you are doing
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) //Part where division by 0 occurs
nums[k] = 0;
}
There will be a division by 0
, which is giving the floating point exception
Edited
Infact, there will be a floating point exception
in the first two for
loops only.. When i=2
and j=2
, nums[2]
will get updated to value 0
. Then later when for i=4
and j=2
. There will be a division by 0
, because num[2]
is already 0
, thus causing the floating point exception