4025 - Doua Mii 22

From Bitnami MediaWiki

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
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
Datele introduse nu respecta restrictiile.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 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
  1. 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()
  1. 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>