0060 - Prime intre ele

De la Universitas MediaWiki

Cerinţa

Să se scrie un program care să verifică dacă două numere naturale citite de la tastatură sunt prime între ele.

Date de intrare

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

Date de ieşire

Programul afișează pe ecran mesajul PIE, dacă numar1 și numar2 sunt prime între ele, respectiv NOPIE în caz contrar.

Restricții și precizări

  • numar1, numar2 ∈ Ν
  • 0 ⩽ numar1, numar2 ⩽ 1.000.000.000
  • două numere naturale sunt prime între ele dacă cel mai mare divizor comun al lor este 1

Exemplu1

Intrare
24 36
Ieșire
Datele de intrare corespund restricțiilor impuse.
NOPIE

Exemplu2

Intrare
24 35
Ieșire
Datele de intrare corespund restricțiilor impuse.
PIE

Rezolvare

import math


def validare_date(numar1, numar2):
    flag = False
    if numar1.isdigit() and numar2.isdigit():
        if 0 < int(numar1) < 1_000_000_000 and 0 < int(numar2) < 1_000_000_000:
            flag = True
    return flag


if __name__ == '__main__':
    numar1, numar2 = input().split()
    if validare_date(numar1, numar2):
        print("\nDatele de intrare corespund restricțiilor impuse.\n")
        cmmd = math.gcd(int(numar1), int(numar2))   #În Python, putem folosi funcția math.gcd() pentru a calcula cel mai mare divizor comun între două numere.
        if cmmd == 1:
            print("PIE")
        else:
            print("NOPIE")
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")

Explicație

Acest cod verifică dacă două numere date ca input respectă restricțiile impuse și calculează cel mai mare divizor comun dintre ele folosind funcția math.gcd() din Python. Dacă cel mai mare divizor comun este 1, atunci se afișează mesajul "PIE", altfel se afișează mesajul "NOPIE".