0375 - Urmatorul Prim

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dă numărul natural n. Să se determine cel mai mic număr prim, strict mai mare decât n.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numărul cerut.

Restricții și precizări[edit | edit source]

  • n ∈ Ν
  • 1 ⩽ n ⩽ 1.000.000.000

Exemplu1[edit | edit source]

Intrare
20
Ieșire
Datele de intrare corespund restricțiilor impuse.
23

Exemplu2[edit | edit source]

Intrare
112
Ieșire
Datele de intrare corespund restricțiilor impuse.
127

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(n):

   flag = False
   if 0 < int(n) < 1_000_000_000:
       flag = True
   return flag


def verif_prim(n):

   if n <= 1:
       return False
   else:
       for i in range(2, int(n ** 0.5) + 1):
           if n % i == 0:
               return False
       else:
           return True


def urmatorul_prim(n):

   i = n + 1
   while not verif_prim(i):
       i += 1
   print(i)


if __name__ == '__main__':

   n = int(input())
   if validare_date(n):
       print("\nDatele de intrare corespund restrictiilor impuse.\n")
       urmatorul_prim(n)
   else:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>

Explicație[edit | edit source]

Programul primește un număr întreg de la utilizator. Dacă numărul este valid, programul calculează următorul număr prim după numărul dat.

Funcția verif_prim primește un număr întreg n și returnează True dacă n este prim și False altfel. Verifică dacă n este mai mare sau egal cu 2 și dacă există un divizor între 2 și rădăcina pătrată a lui n.

Funcția urmatorul_prim primește un număr întreg n și găsește următorul număr prim după n. Folosește un buclă while pentru a găsi următorul număr prim începând cu n+1. Când găsește un număr prim, îl afișează și se oprește.