0080 - Numarare Perechi Prime Intre Ele: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: == Cerinţa == 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 == Programul citește de la tastatură numere naturale. Citirea se încheie la introducerea valorii '''0'''. == Date de ieşire == 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 pre...)
 
Linia 13: Linia 13:
: 15 63 43 129 55 15 4 0
: 15 63 43 129 55 15 4 0
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 3
: 3
== Explicație ==
== Explicație ==
Perechile care respectă condiția cerută sunt: '''(63,43), (129,55), (15,4)'''.
Perechile care respectă condiția cerută sunt: '''(63,43), (129,55), (15,4)'''.

Versiunea de la data 10 aprilie 2023 09:21

Cerinţa

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

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

Date de ieşire

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

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

Exemplu1

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

Explicație

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

Exemplu2

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

Explicație

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

Rezolvare

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.")