3479 - 2 Ian

De la Universitas MediaWiki

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))