Home > Project Euler > Project Euler 80

Project Euler 80

Questi i 3 requisiti per giungere alla soluzione corretta:

1 – Per “100 decimal digits” si intendono tutte le cifre comprese quelle a sinistra della virgola”
Nel caso della radice di 2 (1, 414…) si deve contare anche “1”.414.
2 – Per evitare arrotondamenti sulla ultima cifra decimale (rounding), utilizzare una precisione maggiore di 100
(102 è sufficiente)
3 – Non vanno sommati i quadrati perfetti (es. quando calcoliamo la radice di 4, non
dobbiamo sommare 2 al totale). SOLO gli IRRAZIONALI

from decimal import Decimal, getcontext
import time

getcontext().prec = 102
start = time.time()

tot = 0
numbers = [n for n in range(2, 100) if (n**0.5) % 1 != 0]

for num in numbers:
    tot += sum(Decimal(num).sqrt().as_tuple()[1][:100])
print "euler 80: %s\nelapsed time: %ss." % (tot, time.time() - start)
Categorie:Project Euler
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

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...

%d blogger cliccano Mi Piace per questo: