0045 - Verif Prim: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Să se scrie un program care citește de la tastatură un număr natural '''n''' și verifică dacă este prim. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieşire == Programul afișează pe ecran mesajul '''DA''', dacă '''n''' este număr prim, respectiv '''NU''' în caz contrar. == Restricții și precizări == * '''n ∈ Ν''' * '''1 ⩽ n ⩽ 1.000.000.000''' * un număr natural este '''prim''' dacă are...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 13: Line 13:
: 17
: 17
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: DA
: DA
== Exemplu2 ==
== Exemplu2 ==
Line 19: Line 19:
: 14
: 14
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: NU
: NU
== Rezolvare ==
== Rezolvare ==
Line 52: Line 52:


</syntaxhighlight>
</syntaxhighlight>
== Explicație ==
Programul verifică dacă un număr dat este prim sau nu și face o validare a datelor de intrare.
Funcția '''verif_prim''' primește numărul și verifică dacă este mai mare decât 1. Dacă da, parcurge numerele de la 2 la rădăcina pătrată a numărului și verifică dacă numărul este divizibil cu vreunul dintre aceste numere. Dacă este, afișează "NU", dacă nu, afișează "DA".
Funcția '''main''' citește numărul de la intrare, verifică dacă este valid și apoi apelează funcția '''verif_prim''' pentru a verifica dacă este prim sau nu.

Latest revision as of 16:20, 28 April 2023

Cerinţa[edit]

Să se scrie un program care citește de la tastatură un număr natural n și verifică dacă este prim.

Date de intrare[edit]

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

Date de ieşire[edit]

Programul afișează pe ecran mesajul DA, dacă n este număr prim, respectiv NU în caz contrar.

Restricții și precizări[edit]

  • n ∈ Ν
  • 1 ⩽ n ⩽ 1.000.000.000
  • un număr natural este prim dacă are exact doi divizori distincți: 1 și el însuși.

Exemplu1[edit]

Intrare
17
Ieșire
Datele de intrare corespund restricțiilor impuse.
DA

Exemplu2[edit]

Intrare
14
Ieșire
Datele de intrare corespund restricțiilor impuse.
NU

Rezolvare[edit]

<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:
       print("NU")
   else:
       # Verificăm dacă există un divizor între 2 și rădăcina pătrată a lui n
       for i in range(2, int(n ** 0.5) + 1):
           if n % i == 0:
               print("NU")
               break
       else:
           print("DA")


if __name__ == '__main__':

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

</syntaxhighlight>

Explicație[edit]

Programul verifică dacă un număr dat este prim sau nu și face o validare a datelor de intrare.

Funcția verif_prim primește numărul și verifică dacă este mai mare decât 1. Dacă da, parcurge numerele de la 2 la rădăcina pătrată a numărului și verifică dacă numărul este divizibil cu vreunul dintre aceste numere. Dacă este, afișează "NU", dacă nu, afișează "DA".

Funcția main citește numărul de la intrare, verifică dacă este valid și apoi apelează funcția verif_prim pentru a verifica dacă este prim sau nu.