Project Euler – Problema 7

Riporto la soluzione al problema 7 in Haskell:

–Controlla se un numero è primo
isprime 2 = True
isprime t = if (filter (==0) (map (t`mod`)[2.. ceiling(sqrt (fromIntegral t))])==[]) then True else False

findnextprime x = if(isprime(x+1)) then x+1 else findnextprime(x+1)

addnextprime xs = [findnextprime (head xs)] ++ (xs)

milleeuno xs = if (length xs==10001) then head xs else milleeuno(addnextprime xs)

result = milleeuno [2]

Testo del problema:

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.^()

What is the 10001st prime number?^()

Annunci
Project Euler – Problema 7

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...