0080 - Numarare Perechi Prime Intre Ele: Difference between revisions
Robert Manc (talk | contribs) 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... |
Diana Butuza (talk | contribs) |
||
Line 13: | Line 13: | ||
: 15 63 43 129 55 15 4 0 | : 15 63 43 129 55 15 4 0 | ||
; Ieșire | ; Ieșire | ||
: Datele | : 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)'''. |
Revision as of 09:21, 10 April 2023
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
<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>