1574 - Prietene

De la Universitas MediaWiki
Versiunea din 16 martie 2023 17:31, autor: Robert Manc (discuție | contribuții) (Pagină nouă: == Cerinţa == Se dau două numere naturale. Să se afle dacă aceste numere sunt prietene. Numerele prietene sunt perechile de numere în care fiecare număr în parte este suma tuturor divizorilor celuilalt număr, mai puțin acesta. == Date de intrare == Programul citește de la tastatură două numere '''numar1''' și '''numar2'''. == Date de ieşire == Programul va afișa pe ecran mesajul '''PRIETENE''' dacă cele două numere sunt prietene, respectiv '''NU SUNT PRIETENE...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerinţa

Se dau două numere naturale. Să se afle dacă aceste numere sunt prietene. Numerele prietene sunt perechile de numere în care fiecare număr în parte este suma tuturor divizorilor celuilalt număr, mai puțin acesta.

Date de intrare

Programul citește de la tastatură două numere numar1 și numar2.

Date de ieşire

Programul va afișa pe ecran mesajul PRIETENE dacă cele două numere sunt prietene, respectiv NU SUNT PRIETENE dacă aceste numere nu sunt prietene.

Restricții și precizări

  • numar ∈ Ν
  • 0 ⩽ numar1 ⩽ 100.000
  • 0 ⩽ numar2 ⩽ 100.000

Exemplu

Intrare
220 284
Ieșire
Datele introduse corespund restricțiilor impuse.
PRIETENE

Explicație

Divizorii lui 220 sunt 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 și 110, iar suma acestora este 284. Divizorii lui 284 sunt 1, 2, 4, 71 și 142, iar suma acestora este 220.

Rezolvare

def validare_date(numar):
    flag = False
    if numar.isdigit():
        if 0 <= int(numar) <= 1_000_000_000:
            flag = True
    return flag


def pseudo(numar):
    suma_divizorilor = 0
    for i in range(1, numar + 1):
        if numar % i == 0:
            suma_divizorilor += i
    if suma_divizorilor % numar == 0:
        print("DA")
    else:
        print("NU")


if __name__ == '__main__':
    numar = input()
    if validare_date(numar):
        print("\nDatele de intrare corespund restricțiilor impuse.\n")
        pseudo(int(numar))
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")