Jak obliczyć ostatnią cyfrę $122^{122}$? [duplikować]
Próbuję użyć $$122^{122} = 2^{122} (\mod 10)$$
Ale używam tego MATLABA $122^{122}=2 (\mod 10)$ i $2^{122}=4 (\mod 10)$. Dlaczego nie są takie same? Zrzut ekranu wygląda następująco:

Odpowiedzi
Nie mam już dostępu do Matlab, więc nie mogę dokładnie odtworzyć tego błędu. Podobny błąd obserwuje się, gdy korzystam z Octave online :
octave:2> mod(122^122, 10)
ans = 0
Powinieneś użyć funkcji takiej jak powermod . Rzecz w tym, że nie chcemy obliczać$122^{122}$ wyraźnie.
Zauważ, że $122^{122}$jest to bardzo duża liczba i pracuje w podwójnej precyzji zmiennoprzecinkowej, która przekracza flintmax . Powyżej tej wartości format podwójnej precyzji nie ma dokładności całkowitej i nie wszystkie liczby całkowite mogą być dokładnie reprezentowane.
Odpowiedź brzmi rzeczywiście $4$.
Oto wynik Pythona:
>>> 122**122 % 10 # cool, it can be computed
4
>>> pow(122, 122, 10) # preferred.
4
Możesz użyć chińskiego twierdzenia o resztach. Od$2$ i $10$ nie są względnie pierwsze, Euler nie ma bezpośredniego zastosowania.
$10=2\cdot5$, i $2^{122}\equiv0\bmod2$. Dostajemy$\varphi (5)=4\implies2^{122}\equiv2^2\equiv4\bmod5$, a odpowiedź brzmi $4$.
$122^{122} \equiv 2^{122} (\text{mod $10$})$
Tak jak, $2^5\equiv 2 (\text{mod $10$})$ $\implies 2^{120}\equiv 2^{24} \equiv 2^{4} (\text{mod $10$})$ $\implies 2^{122} \equiv 2^{6} \equiv 4 (\text{mod $10$})$
Spójrz na ogólny problem ze znalezieniem ostatniej cyfry $n^m$.
Brać $n=10N+h$ gdzie $0\le h\le9$ i $m=4M+k$ gdzie $0\le k\le3$.
Potęga cyfr ma okres $4$ modulo $10$ w następujący sposób: $$1\to1\to1\to1\\2\to4\to8\to6\\3\to9\to7\to1\\4\to6\to4\to6\\5\to5\to5\to5\\6\to6\to6\to6\\7\to9\to3\to1\\8\to4\to2\to6\\9\to1\to9\to1$$
Przykład: $797^{723}=(10N+7)^{4\cdot180+3}\equiv7^3\pmod{10}=3\pmod{10}$.
Zastosuj to, aby znaleźć odpowiedź na swój problem.
Tak właściwie, $ 122^{122} mod 10 = 4$. Oni są tacy sami.