Как вычислить последнюю цифру $122^{122}$? [дубликат]
Я пытаюсь использовать $$122^{122} = 2^{122} (\mod 10)$$
Но я использую MATLAB, который $122^{122}=2 (\mod 10)$ и $2^{122}=4 (\mod 10)$. Почему они не такие? Скриншот выглядит следующим образом:

Ответы
У меня больше нет доступа к Matlab, поэтому я не могу точно воспроизвести эту ошибку на своей стороне. Аналогичная ошибка наблюдается, когда я использую Octave онлайн :
octave:2> mod(122^122, 10)
ans = 0
Вам следует использовать такую функцию, как powermod . Уловка в том, что мы не хотим вычислять$122^{122}$ явно.
Заметить, что $122^{122}$это очень большое число, и оно работает с плавающей запятой двойной точности, превышающей flintmax . Выше этого значения формат с двойной точностью не имеет целочисленной точности, и не все целые числа могут быть представлены точно.
Ответ действительно $4$.
Вот результат Python:
>>> 122**122 % 10 # cool, it can be computed
4
>>> pow(122, 122, 10) # preferred.
4
Вы можете использовать китайскую теорему об остатках. поскольку$2$ и $10$ не являются относительно простыми, Эйлер не применим напрямую.
$10=2\cdot5$, и $2^{122}\equiv0\bmod2$. Мы получаем$\varphi (5)=4\implies2^{122}\equiv2^2\equiv4\bmod5$, и ответ $4$.
$122^{122} \equiv 2^{122} (\text{mod $10$})$
Так как, $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$})$
Посмотрите на общую проблему поиска последней цифры $n^m$.
Взять $n=10N+h$ где $0\le h\le9$ и $m=4M+k$ где $0\le k\le3$.
Мощность цифр имеет период $4$ по модулю $10$ следующим образом: $$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$$
Пример: $797^{723}=(10N+7)^{4\cdot180+3}\equiv7^3\pmod{10}=3\pmod{10}$.
Примените это, чтобы найти ответ на вашу проблему.
Фактически, $ 122^{122} mod 10 = 4$. Они одинаковые.