Статья Автор: Деникина Н.В., Деникин А.В.

Периоды степеней по модулю — от теории к задаче

Теория чисел · Остатки и периодыОт наблюдения к решению
SilverTests.ruОлимпиадная математика и информатика
Периоды степеней по модулю

Последние цифры, циклы, предпериод, функция Эйлера и максимальный период — простыми словами


В задачах на степени сами числа растут очень быстро, но часто нас интересует только небольшая часть информации о них — например, несколько последних цифр.

Вместо огромных чисел мы будем работать с остатками от деления. Остатков конечное число, поэтому рано или поздно они начинают повторяться. Но повторение бывает устроено по-разному: иногда цикл начинается сразу, а иногда перед ним есть одноразовый «хвост» — предпериод.

Цель: научиться по условию задачи понять, какой модуль нужно взять, когда возникает предпериод, что такое порядок числа и как без огромного перебора найти максимально возможную длину периода.

 


1Последние цифры — это остаток по модулю

В десятичной системе последние две цифры числа определяются остатком при делении на 100:

123456 mod 100 = 56.

Последние три цифры — остатком при делении на 1000:

123456 mod 1000 = 456.
Общее правило

Если система счисления имеет основание C, то последние k цифр числа полностью определяются остатком

N mod Ck.

Например, последние четыре цифры в системе с основанием 11 означают работу по модулю

114.

?Проверь себя · вопрос 1
В системе счисления с основанием 19 выводятся последние 3 цифры. Какой модуль нужно использовать?

2Почему остатки обязательно начинают повторяться

По модулю m существует только m возможных остатков:

0, 1, 2, ..., m−1.

Поэтому бесконечно получать новые значения невозможно: рано или поздно какой-то остаток встретится снова.

Пример: степени тройки по модулю 7
СтепеньОстаток
313
322
336
344
355
361
373
3 → 2 → 6 → 4 → 5 → 1 → 3 → 2 → ...

?Проверь себя · вопрос 2
Расположи первые пять остатков степеней числа 2 по модулю 5 в правильном порядке.

3Предпериод и период

Повторение остатков ещё не означает, что последовательность обязательно вернётся к самому первому элементу.

Пример: степени двойки по модулю 8
21 mod 8 = 2,   22 mod 8 = 4,   23 mod 8 = 0.
2 → 4 → 0 → 0 → 0 → ...
2, 4
предпериод
0
период
1
длина периода
Предпериод — одноразовая часть до входа в цикл. Период — повторяющаяся часть.

?Проверь себя · вопрос 3
Для степеней числа 4 по модулю 8 получается 4, 0, 0, 0, .... Что здесь является предпериодом и какова длина периода?

?Проверь себя · вопрос 4
Отметь верные утверждения. Здесь нет вычислений — только проверка смысла терминов.

4Почему при модуле pk некоторые основания приходят в ноль

Пусть модуль имеет вид pk, где p — простое число, а основание a делится на p.

Например, возьмём модуль 53 и число

a = 10 = 2 · 5.

При возведении в степень множители 5 накапливаются:

101 = 2·5,
102 = 22·52,
103 = 23·53.

Поэтому

103 ≡ 0 (mod 53),

а дальше остаток навсегда остаётся нулём.


?Проверь себя · вопрос 5
Модуль равен 74, а a = 14 = 2·7. Какая наименьшая из перечисленных степеней уже гарантированно делится на 74?

5Взаимная простота и возможность сокращать

Другое поведение возникает, когда

gcd(a,m) = 1.

Такие числа называют взаимно простыми. У a существует обратный элемент по модулю m, поэтому в сравнениях можно сокращать на степени a.

Например, если gcd(a,m)=1 и

a17 ≡ a5 (mod m),

то можно сократить на a5 и получить

a12 ≡ 1 (mod m).

Отсюда важный вывод: для взаимно простых a и m последовательность степеней не имеет одноразового хвоста — она циклична с самого начала.

Если gcd(a,m)=1, предпериода нет.

?Проверь себя · вопрос 6
Сопоставь пару чисел с тем, можно ли без дополнительных условий сокращать на первое число в сравнении по данному модулю.

6Мультипликативный порядок — длина чистого цикла

Если gcd(a,m)=1, то нас интересует первая положительная степень T, для которой

aT ≡ 1 (mod m).

Минимальное такое T называется мультипликативным порядком числа a по модулю m:

ordm(a) = min { T > 0 : aT ≡ 1 (mod m) }.
Пример: число 2 по модулю 9
2 → 4 → 8 → 7 → 5 → 1 → 2 → ...

Единица впервые появилась на шестой степени, значит

ord9(2) = 6.

И длина периода равна 6.


?Проверь себя · вопрос 7
Найди мультипликативный порядок числа 2 по модулю 5. Введи только число.

7Функция Эйлера и верхняя граница периода

Функция Эйлера φ(m) показывает количество чисел от 1 до m, взаимно простых с m.

Пример: m = 10

С 10 взаимно просты

1, 3, 7, 9.

Поэтому

φ(10) = 4.
Теорема Эйлера

Если gcd(a,m)=1, то

aφ(m) ≡ 1 (mod m).

Значит мультипликативный порядок a не может быть больше φ(m). Более того, он делит φ(m):

ordm(a) | φ(m).

?Проверь себя · вопрос 8
Какие следствия из теоремы Эйлера верны?

8Особенно удобный случай: степень простого числа

Если p — простое, то для pk функция Эйлера вычисляется очень просто:

φ(pk) = pk − pk−1 = pk−1(p−1).

Почему? Среди чисел от 1 до pk не взаимно просты с модулем ровно кратные p. Их pk−1.

Пример
φ(34) = 33(3−1) = 27·2 = 54.

?Проверь себя · вопрос 9
Вычисли φ(72). Введи только число.

9Когда верхняя граница действительно достигается

Теорема Эйлера говорит, что период не превосходит φ(m). Но для максимума нужно ещё знать, существует ли число с порядком ровно φ(m).

Если

ordm(g) = φ(m),

то g называют первообразным корнем по модулю m.

Пример: модуль 7

Для числа 3:

3 → 2 → 6 → 4 → 5 → 1 → ...

Здесь период равен 6, а φ(7)=6. Значит 3 — первообразный корень по модулю 7.

Ключевой факт: для нечётного простого p первообразные корни существуют по модулям p, p2, p3, ... Поэтому для pk максимальный период действительно равен φ(pk).

?Проверь себя · вопрос 10
По модулю 5 степени числа 2 дают 2, 4, 3, 1, .... Является ли 2 первообразным корнем по модулю 5?

10Схема решения задач на максимальный период
1
Перевести последние цифры в модуль.
Последние k цифр в системе с основанием C → модуль Ck.
2
Посмотреть на делители основания.
Если модуль pk и p делит a, степени могут прийти в 0. Такие a длинного периода не дают.
3
Для взаимно простых a перейти к порядку.
Длина периода = ordm(a).
4
Использовать функцию Эйлера.
Порядок делит φ(m), поэтому φ(m) — естественная верхняя граница.
5
Проверить достижимость границы.
Для нечётного простого p и модуля pk существует первообразный корень, значит максимум равен φ(pk).

?Проверь себя · вопрос 11
Расположи действия в правильном порядке для новой задачи такого типа.

11Разбор задачи
Задача

Петя, будучи уже опытным пользователем суперкомпьютера, решил посчитать на нём различные степени некоторого целого положительного числа a в порядке возрастания, начиная с первой. Все результаты он выводил в системе счисления с основанием C = 43, причём выводил только последние три цифры получаемых чисел, при необходимости дописывая ведущие нули. В какой-то момент Петя заметил, что вывод суперкомпьютера стал повторяться, то есть последовательность оказалась периодической.

Пока Петя ждал результата, к нему в гости зашёл Вася. Петя рассказал ему про задачу, и через несколько минут Вася назвал ответ. Петя с удивлением посмотрел на получившееся число, однако спустя полчаса вычислений на суперкомпьютере он получил свой ответ, который сошёлся с ответом Васи.

Определите, какова максимальная длина периода такой последовательности. В ответе укажите целое число.

Пример записи ответа:

171717
Аналитическое решение
1
Последние три цифры в системе счисления с основанием 43 определяются остатком по модулю
m = 433 = 79507.
Значит изучаем последовательность an mod 433.
2
Сначала рассмотрим числа a, кратные 43. Если a = 43b, то
a3 = 433b3 ≡ 0 (mod 433).
После этого все следующие остатки тоже равны 0. Такой случай имеет итоговый период длины 1 и максимума дать не может.
3
Остаются числа, не кратные 43. Поскольку 43 — простое,
gcd(a,433) = 1.
Для них предпериода нет, а длина периода равна мультипликативному порядку a по модулю 433.
4
По теореме Эйлера порядок делит φ(433). Вычислим:
φ(433) = 432(43−1) = 1849·42 = 77658.
Следовательно, никакой период среди взаимно простых оснований не может быть длиннее 77658.
5
43 — нечётное простое число. По модулю 433 существует первообразный корень, то есть число с порядком ровно φ(433). Значит верхняя граница 77658 действительно достигается.
Ответ: 77658
Программное решение

У задачи нет входных данных: C=43 и количество последних цифр k=3 заданы в условии. После аналитического вывода программа просто вычисляет найденную формулу:

p = 43
k = 3

max_period = p ** (k - 1) * (p - 1)

print(max_period)

Результат:

77658
Это не перебор степеней. Программа реализует уже доказанную формулу для максимального периода по модулю pk, где p — нечётное простое.
Дополнительная вычислительная проверка

Можно также найти конкретное основание a, которое действительно имеет порядок 77658. Пусть

N = φ(433) = 77658.

Если для каждого простого делителя q числа N выполняется

aN/q ≠ 1 (mod 433),

то порядок a равен N.

def prime_divisors(n):
    result = []
    d = 2

    while d * d <= n:
        if n % d == 0:
            result.append(d)
            while n % d == 0:
                n //= d
        d += 1

    if n > 1:
        result.append(n)

    return result


p = 43
k = 3
m = p ** k
N = p ** (k - 1) * (p - 1)

divisors = prime_divisors(N)

for a in range(2, m):
    if a % p == 0:
        continue

    if all(pow(a, N // q, m) != 1 for q in divisors):
        print("Максимальный период:", N)
        print("Пример основания a:", a)
        break

Программа находит, например:

Максимальный период: 77658 Пример основания a: 3

Таким образом, вычислительная проверка подтверждает, что период 77658 не только является верхней границей, но и реально достигается.


?Проверь себя · вопрос 12
Реши аналогичную задачу самостоятельно: основание системы счисления 47, выводятся последние 2 цифры. Какова максимальная длина периода? Введи только число.

47 — нечётное простое.


?Проверь себя · вопрос 13
Финальная проверка понимания. Отметь верные утверждения.

12Что важно запомнить
Последние цифры
Последние k цифр в системе с основанием C → остаток по модулю Ck.
Предпериод
Повторение не обязано возвращаться к самому первому элементу. Перед циклом может быть одноразовый хвост.
Взаимная простота
Если gcd(a,m)=1, предпериода у степеней нет, а длина периода равна ordm(a).
Степень простого
φ(pk) = pk−1(p−1).
Максимум
Для нечётного простого p по модулю pk существует первообразный корень, поэтому максимальный период равен φ(pk).
SilverTests.ru · Теория чисел · Периоды степеней по модулю
Печать