Python - Jak mogę ulepszyć mój kod ?, SPOJ - "Przekroczono limit czasu" (PA05_POT - Czy umiesz potęgować)

0

Próbuję rozwiązać takie zadanie z serwisu SPOJ
Polega ono na wypisaniu ostatniej cyfry liczby a do potęgi b
https://pl.spoj.com/problems/PA05_POT/
PA05_POT - Czy umiesz potęgować
Zadanie: POT (Czy umiesz potęgować)

Myślę że wszystko zrobiłem dobrze ale pojawia się błąd "Przekroczono limit czasu"
Mój kod w Pythonie 3.5

for i in range(int(input())):
    a, b = map(int, input().split())
    c = str(a**b)[-1]
    print(int(c))

Jak mogę go poprawić?

0

Kod jest ok, ale zanim policzy ci ostatnią liczbę 987654321^987654321 to miną wieki albo pamięć się skończy :)
Nie musisz mnożyć całej liczby, żeby wiedzieć jaka będzie ostatnia cyfra.

0
iksde napisał(a):

Kod jest ok, ale zanim policzy ci ostatnią liczbę 987654321^987654321 to miną wieki albo pamięć się skończy :)
Nie musisz mnożyć całej liczby, żeby wiedzieć jaka będzie ostatnia cyfra.

Niejestem przekonany
3*3 != 3
title

1

screenshot-20181012190941.png

0

Akurat w tym zadaniu nie trzeba potęgować, przyjrzyj się np ostatnim cyfrom potęgi liczby 2:

2 do potęgi 1 to 2
2 do potęgi 2 to 4
2 do potęgi 3 to 8
2 do potęgi 4 to 16
2 do potęgi 5 to 32
2 do potęgi 6 to 64
2 do potęgi 7 to 128
2 do potęgi 8 to 256
2 do potęgi 9 to 512
2 do potęgi 10 to 1024
2 do potęgi 11 to 2048
2 do potęgi 12 to 4096
2 do potęgi 13 to 8192
2 do potęgi 14 to 16384

1 użytkowników online, w tym zalogowanych: 0, gości: 1