diff --git a/zad2/src/module.adb b/zad2/src/module.adb deleted file mode 100644 index a9eea03..0000000 --- a/zad2/src/module.adb +++ /dev/null @@ -1,76 +0,0 @@ -with Ada.Strings; use Ada.Strings; -with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; - -package body Module is - - function factorial(n : Natural) return Natural is - begin - if (n = 0 or n = 1 ) then - return 1; - end if; - - return n * factorial(n - 1); - end factorial; - - function gcd(a : Natural; b : Natural) return Natural is - begin - if b = 0 then - return a; - end if; - - return gcd(b, a mod b); - end gcd; - - function gcdExtended(a : Integer; b : Integer; x : out Integer; y : out Integer) return Integer is - x1 : Integer; - y1 : Integer; - d : Integer; - begin - if b = 0 then - x := 1; - y := 0; - return a; - end if; - - d := gcdExtended(b, a rem b, x1, y1); - - x := y1; - y := x1 - y1 * (a / b); - - return d; - end gcdExtended; - - function diophantine(a : Integer; b : Integer; c : Integer) return Result is - r : Result; - x0 : Integer := 0; - y0 : Integer := 0; - g : Integer := gcdExtended(abs a, abs b, x0, y0); - begin - r.n := 0; - r.m := 0; - r.resultExists := False; - - if a = 0 and b = 0 then - return r; - end if; - - if (c rem g) /= 0 then - return r; - end if; - - x0 := x0 * (c / g); - y0 := y0 * (c / g); - if a < 0 then - x0 := -x0; - end if; - if b < 0 then - y0 := -y0; - end if; - r.n := x0; - r.m := y0; - r.resultExists := True; - - return r; - end diophantine; - -end Module;