From fcdc3fcda7bf140a250fe5bb476c20155b9d1bdc Mon Sep 17 00:00:00 2001 From: FP10 Uebungsteilnehmer 0726236 Date: Sun, 17 Oct 2010 23:36:12 +0200 Subject: [PATCH] Aufg 2 fertig --- Aufgabe2.hs | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/Aufgabe2.hs b/Aufgabe2.hs index 884a3f6..980762c 100644 --- a/Aufgabe2.hs +++ b/Aufgabe2.hs @@ -1,2 +1,40 @@ --- +-- Aufg 2.1 +diffFolge :: (Integer,Integer) -> [Integer] +diffFolge (m,n) | (m > 0) && (n > 0) = m:(diffFolge((m-n),n)) +diffFolge (m,n) | (m <= 0) && (n > 0) = m:[] + +-- Aufg 2.2 +teilt :: (Integer,Integer) -> Bool +teilt (m,n) = last (diffFolge (m,n)) == 0 + + +-- Aufg 2.3 +zahlenBlock :: Integer -> [Integer] +zahlenBlock x | (x > 0) = (rem x 1000):(zahlenBlock (div x 1000)) +zahlenBlock _ = [] + + +-- Aufg 2.4 +zeichenreihenBlock :: Integer -> [String] +zeichenreihenBlock x | (x > 0) = ((take (3 - length ( show (rem x 1000) )) (repeat '0') ) ++ (show (rem x 1000))):(zeichenreihenBlock (div x 1000)) +zeichenreihenBlock _ = [] + + +-- Aufg 2.5 +siebenTeilbar :: Integer -> Bool +siebenTeilbar x | x > 0 = mod (as (zahlenBlock x)) 7 == 0 +siebenTeilbar x = (mod x 7) == 0 + +as :: [Integer] -> Integer +as xs = sum (komisch xs) + +-- reuse aus Aufg 1.5: alterniere die Reihe... +komisch :: [Integer] -> [Integer] +komisch (x:y:xs) = x:(-y):(komisch xs) +komisch (x:xs) = x:[] +komisch [] = [] + +-- Aufg 2.Z +-- teilt ((24889375),7) is fuckin' slow! +-- waehrend siebenTeilbar (24889375*1000000) immer noch schnell ist. -- 2.43.0