0056 - Numărare Perechi

De la Universitas MediaWiki

Sursa: [1]

Cerinţa

Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 0 < n ⩽ 10

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

#0056
def is_valid(number):
    return -1000000 < number < 1000000 or number == 0


def get_valid_input(prompt):
    """
    Returnează un număr valid introdus de utilizator.
    Prompt-ul este afișat la consolă.
    """
    num = int(input(prompt))
    while not is_valid(num):
        print("Valoarea citită nu este validă!")
        num = int(input(prompt))
    return num


def count_matching_digits():
    """
    Calculează numărul de cifre care se potrivesc în doi numere introduse de utilizator.
    """
    num1 = get_valid_input("Introduceți primul număr: ")
    num2 = get_valid_input("Introduceți al doilea număr: ")

    if num1 < 0:
        num1 = -num1
    if num2 < 0:
        num2 = -num2

    count = 0
    while num2:
        if num1 % 10 == num2 % 10:
            count += 1
        num1 = num2
        num2 = get_valid_input("Introduceți următorul număr: ")
        if num2 < 0:
            num2 = -num2

    print(f"Numărul de cifre care se potrivesc este: {count}")


def main():
    count_matching_digits()


main()