Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Eratostheneen seula laskee alkulukuja
- # Juhani Kaukoranta 4.4.2019
- # Lähteenä erinomainen http://inventwithpython.com/cracking/
- import math
- import time
- # Eratostheneen seula etsii lukua sieveSize pienemmät alkuluvut
- def primeSieve(sieveSize):
- sieve = [True] * sieveSize # merkitään kaikki alkuluvuiksi
- sieve[0] = False # 0 ja 1 eivät alkulukuja
- sieve[1] = False
- primes = []
- # poistetaan monikerrat, merkitään False
- for i in range(2, int(math.sqrt(sieveSize))+1):
- if sieve[i] == False:
- continue
- for j in range(2*i,sieveSize,i):
- sieve[j] = False
- for i in range(2,sieveSize):
- if sieve[i]==True:
- primes.append(i)
- return primes
- high = int(input("Anna kokonaisluku, jota pienemmät alkuluvut lasketaan "))
- time0 = time.perf_counter()
- alkuluvut = primeSieve(high)
- time1 = time.perf_counter()
- print("Laskenta-aika = ",time1-time0," sekuntia")
- print("alkulukuja oli ",len(alkuluvut)," kpl")
- print(alkuluvut)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement