0375 - Urmatorul Prim: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă numărul natural '''n'''. Să se determine cel mai mic număr prim, strict mai mare decât '''n'''. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieşire == Programul afișează pe ecran numărul cerut. == Restricții și precizări == * '''n ∈ Ν''' * '''1 ⩽ n ⩽ 1.000.000.000''' == Exemplu1 == ; Intrare : 20 ; Ieșire : Datele introduse corespund restricțiilor impuse. : 23 == Exemplu2 == ; Intrare...
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 12: Line 12:
: 20
: 20
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 23
: 23
== Exemplu2 ==
== Exemplu2 ==
Line 18: Line 18:
: 112
: 112
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 127
: 127
== Rezolvare ==
== Rezolvare ==
Line 56: Line 56:


</syntaxhighlight>
</syntaxhighlight>
== Explicație ==
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.

Latest revision as of 16:29, 28 April 2023

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.