summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-11-30 00:21:21 +0100
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:35:09 +0200
commitd851f8bef35eb30d83d0c980f272eb57fe67aaa7 (patch)
treece5e7b2a208bcfcfa27cffcbc120af08ebe10356
parentc686c85216d0284030e604bd53ba5a7e5375198d (diff)
solved projecteuler 75
-rw-r--r--src/projecteuler/075.py29
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
+