diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-12 15:47:31 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-12 15:47:31 +0200 |
| commit | bb515e51d67f37ba9c6dfbd2fd0930be873a5ada (patch) | |
| tree | e86abea100d2c02a5dad7b6d5f0bf29c307bae04 /haskell/009-special_pythagorean_triplet.hs | |
| parent | 1879caa1dd80cb11dd62403663917ad4bf7cc68e (diff) | |
| download | project_euler-bb515e51d67f37ba9c6dfbd2fd0930be873a5ada.tar.gz project_euler-bb515e51d67f37ba9c6dfbd2fd0930be873a5ada.tar.bz2 project_euler-bb515e51d67f37ba9c6dfbd2fd0930be873a5ada.zip | |
haskell problems 007 -> 010
Diffstat (limited to 'haskell/009-special_pythagorean_triplet.hs')
| -rw-r--r-- | haskell/009-special_pythagorean_triplet.hs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/haskell/009-special_pythagorean_triplet.hs b/haskell/009-special_pythagorean_triplet.hs new file mode 100644 index 0000000..056a7c3 --- /dev/null +++ b/haskell/009-special_pythagorean_triplet.hs @@ -0,0 +1,21 @@ +-- Special Pythagorean triplet +-- +-- Problem 9 +-- A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, +-- +-- a^2 + b^2 = c^2 +-- For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2. +-- +-- There exists exactly one Pythagorean triplet for which a + b + c = 1000. +-- Find the product abc. + + +main = do + print (truncate (pyth_triplet 1 1)) + +pyth_triplet :: Float -> Float -> Float +pyth_triplet a b + | a + b + c == 1000 = a * b * c + | b >= 1000 = pyth_triplet (a + 1) 0 + | otherwise = pyth_triplet a (b + 1) + where c = sqrt (a ^ 2 + b ^ 2) |
