0434 - Perechi Prime: Difference between revisions

From Bitnami MediaWiki
Line 47: Line 47:
         numar += 2
         numar += 2


def main():
if __name__ == '__main__':
     numar = input("Introduceți numărul n: ")
     numar = input("Introduceți numărul n: ")
     if validare_date(numar):
     if validare_date(numar):
Line 57: Line 57:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")


if __name__ == '__main__':
    main()
</syntaxhighlight>
</syntaxhighlight>
==Explicație rezolvare==
==Explicație rezolvare==
Acest cod este un program Python care își propune să găsească primele '''n''' perechi de numere naturale impare consecutive prime.
Acest cod este un program Python care își propune să găsească primele '''n''' perechi de numere naturale impare consecutive prime.

Revision as of 09:36, 25 April 2023

Cerinţa

Se dă un număr natural n. Afișați primele n perechi de numere naturale impare consecutive prime.

Date de intrare

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

Date de ieşire

Programul afișează pe ecran n primele perechi de numere naturale impare consecutive prime, câte o pereche pe linie, numerele dintr-o pereche fiind separate printr-un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • pentru fiecare pereche p q afișată, p < q

Exemplu

Intrare
5
Ieșire
Datele de intrare corespund restricțiilor impuse.
3 5
5 7
11 13
17 19
29 31

Rezolvare

<syntaxhighlight lang="python" line> import math

def validare_date(numar):

   flag = False
   if numar.isdigit():
       if 0 <= int(numar) <= 100:
           flag = True
   return flag

def is_prime(numar):

   if numar < 2:
       return False
   for i in range(2, int(math.sqrt(numar))+1):
       if numar % i == 0:
           return False
   return True

def print_consecutive_primes(n):

   count = 0
   numar = 3
   while count < n:
       if is_prime(numar) and is_prime(numar+2):
           print(numar, numar+2)
           count += 1
       numar += 2

if __name__ == '__main__':

   numar = input("Introduceți numărul n: ")
   if validare_date(numar):
       n = int(numar)
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       print("Primele", n, "perechi de numere naturale impare consecutive prime sunt:")
       print_consecutive_primes(n)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>

Explicație rezolvare

Acest cod este un program Python care își propune să găsească primele n perechi de numere naturale impare consecutive prime.

Funcția validare_date primește un număr sub formă de șir de caractere și returnează o valoare booleană, True dacă numărul este un număr natural între 0 și 100, inclusiv, altfel returnează False.

Funcția is_prime primește un număr și returnează o valoare booleană, True dacă numărul este prim, altfel returnează False. Funcția utilizează o buclă for care verifică dacă numărul este divizibil cu orice număr între 2 și rădăcina pătrată a numărului dat, iar dacă este, returnează False.

Funcția print_consecutive_primes primește un număr întreg n și afișează primele n perechi de numere naturale impare consecutive prime. Funcția începe cu numărul 3 și, utilizând o buclă while, verifică dacă numerele sunt prime și consecutive impare și le afișează în caz afirmativ. Dacă găsește o pereche, crește numărul de perechi găsite (count) cu 1 și trece la următorul număr.

Funcția main începe prin a cere utilizatorului să introducă un număr întreg n și apoi verifică dacă acesta este valid utilizând funcția validare_date. Dacă numărul este valid, afișează mesajul Datele de intrare corespund restricțiilor impuse. și apoi utilizează funcția print_consecutive_primes pentru a afișa primele n perechi de numere naturale impare consecutive prime. Dacă numărul nu este valid, afișează mesajul Datele de intrare nu corespund restricțiilor impuse.