3479 - 2 Ian

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerință

Se da un număr n. Calculați ultima cifră a lui .

Date de intrare

Fișierul de intrare 2lan.in conține pe prima linie numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse.". Fișierul de ieșire 2lan.out va conține ultima cifra a lui . În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

0 ≤ n ≤ 100.000

Exemplul 1

2lan.in
6
2lan.out
4
Ieșire
Datele de intrare corespund restricțiilor impuse.

Explicație

= 64 și ultima sa cifră este 4.

Rezolvare

Rezolvare ver. 1

# Funcție pentru validarea valorii n.
def validare(n):
    if 0 <= n <= 100000:
        return True
    else:
        return False


# Funcție pentru calcularea ultimei cifre a lui 2^n.
def ultima_cifra_2_la_n(n):
    # Ciclicitatea cifrelor la puterile pare ale lui 2 este 2-4-8-6.
    return pow(2, n % 4 + 4) % 10


if __name__ == '__main__':
    # Citirea valorii n din fișierul de intrare.
    with open('2lan.in', 'r') as fin:
        n = int(fin.readline().strip())

    # Validarea valorii n.
    if not validare(n):
        print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")

        # Calcularea și scrierea rezultatului în fișierul de ieșire.
        result = ultima_cifra_2_la_n(n)
        with open('2lan.out', 'w') as fout:
            fout.write(str(result))