54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
# n is the largest number prime pair we need
|
|
def prime_pairs(n):
|
|
if n <= 0:
|
|
return []
|
|
|
|
limit = 1000
|
|
primes = []
|
|
sieve = [True] * (limit + 1)
|
|
sieve[0] = sieve[1] = False
|
|
prime_pairs = []
|
|
|
|
while True:
|
|
print(len(sieve))
|
|
for p in range(2, int(limit**0.5) + 1):
|
|
if sieve[p]:
|
|
for i in range(p * p, limit + 1, p):
|
|
sieve[i] = False
|
|
|
|
for p in range(2, limit + 1):
|
|
if sieve[p]:
|
|
primes.append(p)
|
|
if len(primes) > 1:
|
|
if primes[-1] - primes[-2] == 2 and (primes[-2], primes[-1]) not in prime_pairs:
|
|
prime_pairs.append((primes[-2], primes[-1]))
|
|
|
|
if len(prime_pairs) >= n:
|
|
break
|
|
|
|
limit *= 2
|
|
sieve.extend([True] * (limit - len(sieve) + 1))
|
|
|
|
print(prime_pairs)
|
|
|
|
return prime_pairs
|
|
|
|
def main():
|
|
n = int(input())
|
|
|
|
nums = []
|
|
|
|
for i in range(n):
|
|
nums.append(int(input()))
|
|
|
|
primes_list = prime_pairs(max(nums))
|
|
|
|
for num in nums:
|
|
print(f'{primes_list[num - 1][0]} {primes_list[num - 1][1]}')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|
|
|