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