【发布时间】:2015-03-02 17:46:25
【问题描述】:
这是 spoj.com (http://www.spoj.com/problems/PRIC/) 上的问题。我们必须检查序列的数字是否:ai=( a(i-1)+1234567890 ) mod 2^31 是否为素数,第一个数字是 1。 我的代码如下(请尽量忽略笨拙。)基于eratosthenes的筛子。
问题:我们必须为 i=33,333,333 的序列打印“prime(1) or not(0)”,我的代码对于 i(代码中的 c3)值高达 8000 左右以及之后(例如 c3>19000 )它开始给出 SIGFPE 错误。现在我用谷歌搜索了这个错误,它与除法/模减 0 有关。但是为什么该代码适用于 c3 值高达 9000 但不能超过此值?
【问题讨论】:
-
你试过在调试器中运行程序吗?如果您使用调试符号进行编译,
gdb通常会为您提供故障跟踪 :) -
我不知道这是什么意思,你能指出一个有用的链接吗?
-
如果您想查找信息,为什么不使用网络搜索?我们为什么要为你做?为什么我们必须为您搜索链接?如果您想编写代码,则需要花时间学习如何调试。
-
也许
prime2[j]为零。 -
@BLUEPIXY 您似乎是对的好先生,请看我的回答 :)