I got ac in all the testcases except the last one in which i am getting a RE (SIGFPE). I cannot figure out why am i getting this error. I don’t think there is any division by zero or invalid access of memory or overflow of memory. Please help.
Problem link: https://www.codechef.com/problems/NUMFACT
My solution: https://www.codechef.com/viewsolution/14259762
hey @abhinav_7538 you just need change the max_num in your code…changing it to 1010 your solution got accepted… here is my submission of your code with modification
[1].
[1]: https://www.codechef.com/viewsolution/14259853
3 Likes
Adding to above answer, you should know what causes SIGFPE.
Usually, the 3 most common things causing SIGFPE is-
- Division of a number by 0
- Modulo (%) of a number by 0
- Overflow in a function which resulted in the function returning 0 (which was further used for division or modulo)
But i don’t see why my solution was wrong…
Even i tried debugging your code. I feel the SIGFPE error was due to this condition-
for(;primes[j]*primes[j] < temp+1;j++)
It might be possible that j exceeds the range of index, and a default value of 0 gets assigned to it. (And since primes are being calculated to 1000, raising the upper limit must have added 1-2 extra primes such that it didnt go out of index then)
your solution was not wrong…but it’s always better to have limits bit higher than required…
1 Like
Thanks guys. I think what vijju123 suggested is probably the reason.