0080 - Numarare Perechi Prime Intre Ele

From Bitnami MediaWiki
Revision as of 15:46, 28 April 2023 by Robert Manc (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Se dau numere naturale de la tastatură până la apariția lui zero. Să se determine câte perechi de numere citite consecutiv sunt prime între ele.

Date de intrare[edit | edit source]

Programul citește de la tastatură numere naturale. Citirea se încheie la introducerea valorii 0.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numărul numar_perechi_prime, reprezentând numărul de perechi citite care respectă condiția cerută.

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

  • n ∈ Ν
  • numerele citite aparțin intervalului [0 ; 1.000.000.000)
  • valoarea zero, care încheie citirile, nu se va prelucra

Exemplu1[edit | edit source]

Intrare
15 63 43 129 55 15 4 0
Ieșire
Datele de intrare corespund restricțiilor impuse.
3

Explicație[edit | edit source]

Perechile care respectă condiția cerută sunt: (63,43), (129,55), (15,4).

Exemplu2[edit | edit source]

Intrare
2 9 6 15 12 21 24 0
Ieșire
Datele de intrare corespund restricțiilor impuse.
1

Explicație[edit | edit source]

Perechile care respectă condiția cerută sunt: (2,9).

Rezolvare[edit | edit source]

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

   flag = all(isinstance(x, int) and 0 <= x < 1_000_000_000 for x in n)
   return flag


def prim(numar1, numar2):

   rest = 0
   while numar2:
       rest = numar1 % numar2
       numar1 = numar2
       numar2 = rest
   if numar1 == 1:
       return 1
   else:
       return 0


if __name__ == '__main__':

   n = list(map(int, input().split()))
   numar_perechi_prime = 0
   if validare_date(n):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       for i in range(1, len(n)):
           if prim(n[i - 1], n[i]):
               numar_perechi_prime += 1
       print(numar_perechi_prime)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>

Explicație[edit | edit source]

Programul primește o listă de numere și verifică dacă numerele sunt întregi și sunt cuprinse între 0 și 1 miliard. Apoi, calculează numărul de perechi de numere din listă care sunt prime între ele și afișează rezultatul. Funcția prim() este utilizată pentru a verifica dacă două numere sunt prime între ele.