4025 - Doua Mii 22
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul K, iar apoi K numere naturale, separate prin spații.
Date de ieșire[edit | edit source]
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[edit | edit source]
- 1 ⩽ K ⩽ 2022
- cele K numere citite vor fi mai mici sau egale cu 20222022
Exemplu 1[edit | edit source]
- Intrare
- 3
- 4 23 198
- Ieșire
- 11 67 595
Explicatie[edit | edit source]
Şirul numerelor naturale, prime cu 2022, este format din numerele: 1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, ....
Exemplu 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Datele introduse nu respecta restrictiile.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 4025 - DouaMii22
def este_prim_cu_2022(numar):
if numar < 2: return False for i in range(2, int(numar**0.5) + 1): if numar % i == 0: return False return True
def afla_n_prim_cu_2022(n):
numar = 1 numere_prim_cu_2022 = [] while len(numere_prim_cu_2022) < n: if este_prim_cu_2022(numar): numere_prim_cu_2022.append(numar) numar += 1 return numere_prim_cu_2022[-1]
try:
# Citirea datelor de intrare k = int(input("Introduceti numarul K: ")) if 1 <= k <= 2022: numere = list(map(int, input(f"Introduceti cele {k} numere, separate prin spatiu: ").split()))
# Verificarea și afișarea rezultatelor for n in numere: if 1 <= n <= 20222022: rezultat = afla_n_prim_cu_2022(n) print(f"Pentru n={n}, al {n}-lea numar prim cu 2022 este: {rezultat}") else: print("Datele introduse nu respecta restrictiile.") break else: print("Datele introduse nu respecta restrictiile.")
except ValueError:
print("Datele introduse nu sunt valide.")
</syntaxhighlight>