1922 - N Mod 25

De la Universitas MediaWiki

Cerința

Se dau numerele naturale N și X. Aflați dacă N este divizibil cu 2X și dacă N este divizibil cu 5X.

Date de intrare

Fișierul de intrare nmod25.in conține numărul X și numărul N.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următoarea linie se va afișa mesajul DA dacă numărul este divizibil cu 2X sau NU dacă nu este divizibil, pe a treia linie mesajul DA dacă numărul este divizibil cu 5X sau NU dacă nu este divizibil.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • N are cel mult 100.001 cifre
  • 0 < X < 5

Exemplu 1

Intrare
3
50008
Ieșire
Datele de intrare corespund restricțiilor impuse.
DA
NU

Explicație

50008 este divizibil cu 2 la puterea 3 dar nu si cu 5 la puterea 3.

Exemplu 2

Intrare
10
800055
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#1922 - N Mod 25
def conditii(x, n):
    return 0 < x < 5 and\
        0 < n <= 100_001


def nmod25(x, n):
    # orice numar A este divizibil cu B daca A % B == 0 (citit A modulo B)
    # În Python, ** este operatorul de ridicare la putere
    print("DA" if n % (2 ** x) == 0 else "NU")
    print("DA" if n % (5 ** x) == 0 else "NU")


if __name__ == "__main__":
    x = int(input())
    n = int(input())
    if not conditii(x, n):
        print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        nmod25(x, n)