Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.93 KB | None | 0 0
  1. class Primes:
  2.     def __init__(self, maximum):
  3.         sieve = [i for i in range(maximum+1)]
  4.         sieve[1] = 0
  5.         i = 2
  6.         while i * i <= maximum:
  7.             if sieve[i] != 0:
  8.                 for j in range(i*2, maximum+1, i):
  9.                     sieve[j] = 0
  10.             i += 1
  11.  
  12.         current_list = [3]
  13.         sieve[0] = [None]
  14.         sieve[1] = [None]
  15.         for i in range(3, len(sieve)):
  16.             if sieve[i] == 0:
  17.                 sieve[i] = current_list
  18.             else:
  19.                 current_list = [i]
  20.  
  21.         last_prime = None
  22.         for i in range(len(sieve)-1, -1, -1):
  23.             if sieve[i] == i:
  24.                 last_prime = i
  25.             elif len(sieve[i]) == 1:
  26.                 sieve[i].append(last_prime)
  27.         self._data = sieve
  28.  
  29.     def print(self):
  30.         for i, v in enumerate(self._data):
  31.             print(i, v)
  32.  
  33. def main():
  34.     s = Primes(100)
  35.     s.print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement