From 2b1d879eebc26e449540878ffe10de699c9319dc Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sat, 23 Feb 2019 21:57:43 +0100 Subject: [PATCH] Euklid --- Euklid.fs | 13 +++++++++++++ FSharpTest.fsproj | 1 + Program.fs | 3 +++ 3 files changed, 17 insertions(+) create mode 100644 Euklid.fs diff --git a/Euklid.fs b/Euklid.fs new file mode 100644 index 0000000..83b1aed --- /dev/null +++ b/Euklid.fs @@ -0,0 +1,13 @@ +module Euklid + +open System + +let rec euklid a b = + if b = 0 then a + else euklid b (a % b) + +let rec erwEuklid a b = + if b = 0 then (a, 1, 0) + else + let (d, x, y) = erwEuklid b (a % b) + (d, y, x - (a / b) * y) diff --git a/FSharpTest.fsproj b/FSharpTest.fsproj index a1b3254..2bb34ff 100755 --- a/FSharpTest.fsproj +++ b/FSharpTest.fsproj @@ -6,6 +6,7 @@ + \ No newline at end of file diff --git a/Program.fs b/Program.fs index 37edfcf..2f2acc9 100755 --- a/Program.fs +++ b/Program.fs @@ -103,4 +103,7 @@ let main argv = printfn "%b" (BetterThanRacket.BinaryTreeHausübung.BinaryTreeContains 56 BinaryTreeHausübung.smallTree) + printfn "%A" (Euklid.euklid 128 36) + printfn "%A" (Euklid.erwEuklid 128 36) + 0 // return an integer exit code