2 diffFolge :: (Integer,Integer) -> [Integer]
3 diffFolge (m,n) | (m > 0) && (n > 0) = m:(diffFolge((m-n),n))
4 diffFolge (m,n) | (m <= 0) && (n > 0) = m:[]
8 teilt :: (Integer,Integer) -> Bool
9 teilt (m,n) = last (diffFolge (m,n)) == 0
13 zahlenBlock :: Integer -> [Integer]
14 zahlenBlock x | (x > 0) = (rem x 1000):(zahlenBlock (div x 1000))
19 zeichenreihenBlock :: Integer -> [String]
20 zeichenreihenBlock x | (x > 0) = ((take (3 - length ( show (rem x 1000) )) (repeat '0') ) ++ (show (rem x 1000))):(zeichenreihenBlock (div x 1000))
21 zeichenreihenBlock _ = []
25 siebenTeilbar :: Integer -> Bool
26 siebenTeilbar x | x > 0 = mod (as (zahlenBlock x)) 7 == 0
27 siebenTeilbar x = (mod x 7) == 0
29 as :: [Integer] -> Integer
30 as xs = sum (komisch xs)
32 -- reuse aus Aufg 1.5: alterniere die Reihe...
33 komisch :: [Integer] -> [Integer]
34 komisch (x:y:xs) = x:(-y):(komisch xs)
39 -- teilt ((24889375),7) is fuckin' slow!
40 -- waehrend siebenTeilbar (24889375*1000000) immer noch schnell ist.