Sonntag, 5. Februar 2012

Können Primzahlen glücklich machen?



Commander Pirx würde sagen: "Unbedingt" :-)


Naja, ich sage mal so. Wenn man jetzt die Mersenne Zahlen auf Primzahl prüft wird es doch recht zäh mit der Rechnerei. Ich bin jetzt bei 2.305.843.009.213.693.951 und warte noch auf 618.970.019.642.690.137.449.562.111.

Hier mal der Haskell Code:

module Main
    where

import IO

main = do
  hSetBuffering stdout NoBuffering
  putStrLn (show (mersenne 3)) -- start with 3

myPrimTest :: Integer -> Integer -> Integer -> Bool
myPrimTest prim n h
    | n > h = True 
    | (mod prim n == 0) = False
    | (mod prim n /= 0) = myPrimTest prim (n+2) (div prim n)

mersenne :: Integer -> [Integer]
mersenne n
    | (myPrimTest merZahl 3 3) == True = merZahl: mersenne (n+1)
    | otherwise = mersenne (n+1)
    where merZahl = 2^n -1


Wikipedia zu Mersenne Primzahlen:

The Haskell Programming Language:

Keine Kommentare:

Kommentar veröffentlichen