4025 - Doua Mii 22
Cerința
Se dau K numere naturale nenule, mai mici sau egale cu 20222022. Pentru fiecare număr n dintre acestea, se cere aflarea celui de-al n-lea număr natural prim cu 2022.
Date de intrare
Programul citește de la tastatură numărul K, iar apoi K numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran, pentru fiecare număr n dintre cele K numere date, al n-lea număr natural, prim cu 2022.
Restricții și precizări
- 1 ⩽ K ⩽ 2022
- cele K numere citite vor fi mai mici sau egale cu 20222022
Exemplu 1
- Intrare
- 3
- 4 23 198
- Ieșire
- Datele de intrare corespund restricțiilor impuse
- 11 67 595
Explicatie
Şirul numerelor naturale, prime cu 2022, este format din numerele: 1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, ....
Exemplu 2
- Intrare
- 0
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line>
- 4025 - DouaMii22
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def find_nth_prime_with_2022(n):
primes = []
num = 1
while len(primes) < n:
if is_prime(num) and num % 2022 != 0:
primes.append(num)
num += 1
return primes[-1]
def validate_input(k, numbers):
if 1 <= k <= 2022:
for num in numbers:
if 1 <= num <= 20222022:
continue
else:
return False
return True
return False
- Citirea datelor de la tastatură
try:
k = int(input("Introduceți numărul K: "))
numbers = list(map(int, input(f"Introduceți cele {k} numere naturale, separate prin spații: ").split()))
except ValueError:
print("Datele introduse nu sunt corecte. Introduceți numere valide.")
exit()
- Verificarea dacă datele introduse respectă restricțiile
if not validate_input(k, numbers):
print("Datele introduse nu respectă restricțiile.")
else:
# Afișarea rezultatelor
results = [find_nth_prime_with_2022(n) for n in numbers]
print(" ".join(map(str, results)))
</syntaxhighlight>