From fcdc3fcda7bf140a250fe5bb476c20155b9d1bdc Mon Sep 17 00:00:00 2001
From: FP10 Uebungsteilnehmer 0726236 <f0726236@g0.complang.tuwien.ac.at>
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