Advertisement
ifigazsi

Semi primes

Apr 19th, 2024 (edited)
699
0
1 day
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.63 KB | None | 0 0
  1. from itertools import combinations_with_replacement
  2.  
  3. def primes(n: int) -> iter:
  4.     return [i for i in range(2, n + 1) if sum(i % k == 0 for k in range(1, int(i ** 0.5) + 1)) == 1]
  5.  
  6. def at_least20(number):
  7.     if number < 20:
  8.         return 20
  9.     return number
  10.  
  11. def semi_primes(number_of_semi_primes):
  12.     list_of_primes = primes(at_least20(number_of_semi_primes))
  13.     comb = combinations_with_replacement(list_of_primes, 2)
  14.     c = set()
  15.     for i in comb:
  16.         c.add(i[0] * i[1])
  17.         if len(c) == number_of_semi_primes:
  18.             break
  19.     print(sorted(c))
  20.  
  21. if __name__ == '__main__':
  22.  
  23.     semi_primes2(10000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement