diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-11-30 00:21:21 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:35:09 +0200 |
| commit | d851f8bef35eb30d83d0c980f272eb57fe67aaa7 (patch) | |
| tree | ce5e7b2a208bcfcfa27cffcbc120af08ebe10356 | |
| parent | c686c85216d0284030e604bd53ba5a7e5375198d (diff) | |
solved projecteuler 75
| -rw-r--r-- | src/projecteuler/075.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/projecteuler/075.py b/src/projecteuler/075.py new file mode 100644 index 0000000..58e9136 --- /dev/null +++ b/src/projecteuler/075.py @@ -0,0 +1,29 @@ +# generating Pythagorean triplets + +limit = 1500000 +limit_search = 900 +squares = [ x*x for x in xrange(limit) ] +triangles = [ set() for x in xrange(limit+1) ] + + +for m in xrange(1, limit_search): + for n in xrange(1, m): + (a,b,c) = (squares[m] - squares[n], 2*m*n, squares[m] + squares[n]) + if a > b: + (a,b,c) = (b,a,c) + + k = 1 + while True: + if k*(a+b+c) > limit: + break + triangles[k*a + k*b + k*c].add((k*a,k*b,k*c)) + k += 1 + + +count = 0 +for t in triangles: + if len(t) == 1: + count += 1 + +print count + |
