2013-04-17 14:34:39 +08:00

29 lines
435 B
Python

laymax = lambda x: (2 * x + 1) ** 2
def isp(x):
if x == 2:
return True
if x <= 1 or x & 1 == 0:
return False
for i in xrange(3, int(x ** 0.5) + 1, 2):
if x % i == 0:
return False
return True
be = 3
non = 2
i = 2
while 9 * be >= non:
tmp = laymax(i)
for j in xrange(4):
#print float(be) / (be + non)
if isp(tmp):
be += 1
else:
non += 1
tmp -= 2 * i
i += 1
print 2 * i - 1