summaryrefslogtreecommitdiff
path: root/046.py
blob: 24a29836f87388278d72f552cb67aa57a321b64c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

from common import sieve

squares = set([ x*x for x in xrange(1, 1000000) ])

def check_number(number, prime):
	square = (number - prime) >> 1
	return square in squares

prime_set = sieve(1000000).primes()
primes = list(prime_set)
primes.sort()

number = 3

while True:
	number += 2

	if number in prime_set:
		continue

	conjecture = False

	for p in primes:
		if p >= number:
			break
		if check_number(number, p):
			conjecture = True
			break

	if not conjecture:
		break

print number