daily pastebin goal
10%
SHARE
TWEET

Eratosthes_sieve_numpy.py

jukaukor Mar 24th, 2019 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Eratostheneen seula käyttäen numpy boolean arrays
  2. # Juhani Kaukoranta 24.3.2019
  3. import numpy as np
  4. import time
  5.  
  6. def Sieve(n):
  7.     # palauttaa lukua n pienemmät alkuluvut
  8.     # aluksi kaikki nimetään alkuluvuiksi = True:
  9.     # (kokonaislukuvastaavuus 0 = False, 1 = True)
  10.     primes = np.ones(n,dtype=bool)
  11.     # poistetaan  alkulukujen joukosta 0 and 1:
  12.     primes[:2] = False
  13.     # poistetaan monikerrat:
  14.     nmax = int(np.sqrt(len(primes)))
  15.     for i in range(2, nmax):
  16.         primes[2*i::i] = False
  17.     # nonzero-sisältöiset ovat True eli alkulukuja
  18.     return(np.flatnonzero(primes))
  19.  
  20. high = int(input("Anna kokonaisluku, jota pienemmät alkuluvut lasketaan "))
  21. # lasketaan laskentaan kuluva aika
  22. time0 = time.perf_counter()
  23. alkuluvut = Sieve(high)
  24. time1 = time.perf_counter()
  25. print("Aikaa kului ",time1-time0," sekuntia")
  26. print("Lukua ",high," pienempiä alkulukuja ",len(alkuluvut)," kpl")
  27. print(alkuluvut)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top