所以我试图生成小于 2000000 的素数并找到它们的总和。对于样本大小,我尝试将素数设为 40000,但出现了分段错误。我尝试了很多值,我发现数字 35044 是程序的崩溃点。
import sys
sys.setrecursionlimit(100000000)
def stuff(total, rnge):
for n in rnge:
ubound=int(n**0.5)+1
print ubound
for x in range(3, ubound, 2):
if n % x == 0:
stuff(total, range(n+2, 35044, 2))
#print n
total = total + n
#print total
print total
exit()
stuff(17, range(11, 35044, 2))
这是导致的错误:"Run Command: line 1: 2942 Segmentation fault: 11 python "$1" "${@:3}"
旁注:Finder 还说 python 崩溃并给我一个崩溃报告,包括这两个有趣的信息:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00007fff5f3fffb8
不确定这是否有用。
另外,对于那些想知道的人,我在最新的 15 英寸 rMPB 上,配备 16 GB RAM 和 2.7 Ghz 处理器,当我运行程序时,吃掉所有 14GB 或一些空闲 RAM,然后在打印数字 181 a 后崩溃几次。