Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import bisect
- def num_prime(n):
- sup = n + 1
- prime_list = []
- prime = [True] * sup
- prime[0] = prime[1] = False
- count = 2
- for i in range(2, sup):
- if count == sup:
- break
- if not prime[i]:
- continue
- prime_list.append(i)
- count += 1
- for j in range(i * i, sup, i):
- if prime[j]:
- prime[j] = False
- count += 1
- return prime_list
- A, B = map(int, input().split())
- primes = num_prime(B)
- super_prime = set()
- for index_first in range(bisect.bisect_left(primes, A - primes[-1]), bisect.bisect_left(primes, B // 2 + 1)):
- for index_second in range(max(index_first, bisect.bisect_left(primes, A - primes[index_first])), len(primes)):
- number = primes[index_first] + primes[index_second]
- if number > B:
- break
- super_prime.add(number)
- print(*sorted(super_prime), sep='\n')
Advertisement
Add Comment
Please, Sign In to add comment