Алгоритмы обработки чисел
Теория для подготовки к ЕГЭ по информатике. Раздел 3.4: Алгоритмы обработки натуральных чисел, простые числа, быстрые алгоритмы.
Обработка цифр числа
Для работы с отдельными цифрами числа нужно уметь разбивать число на цифры. Это основа многих алгоритмов обработки чисел.
Основные операции с цифрами числа:
- Разбиение числа на отдельные цифры
- Вычисление суммы цифр числа
- Вычисление произведения цифр числа
- Поиск максимальной и минимальной цифры
Алгоритм разбиения числа на цифры:
Сумма и произведение цифр
Сумма и произведение цифр числа — частые операции в задачах на обработку чисел.
Алгоритмы вычисления:
- Сумма цифр: последовательное сложение всех цифр числа
- Произведение цифр: последовательное умножение всех цифр числа
- Особый случай: если число содержит 0, произведение будет равно 0
Пример: Вычисление суммы и произведения цифр
Важно: При вычислении произведения цифр нужно инициализировать переменную-накопитель значением 1, а не 0 (так как умножение на 0 даст всегда 0).
Поиск максимальной и минимальной цифры
Для поиска максимальной и минимальной цифры в числе нужно последовательно сравнивать все цифры числа.
Алгоритм поиска:
- Инициализируем переменные для хранения min и max значения
- Последовательно обрабатываем каждую цифру числа
- Сравниваем текущую цифру с сохраненными значениями
- Обновляем min и max при необходимости
Пример: Поиск максимальной и минимальной цифры
Важно: При инициализации min_digit устанавливайте максимально возможное значение (9), а для max_digit — минимально возможное (0).
Разложение на простые множители
Любое натуральное число можно представить в виде произведения простых чисел — это называется разложением на простые множители.
Алгоритм разложения на простые множители:
- Начинаем с первого простого числа (2)
- Делим число на простое число, пока делится
- Переходим к следующему простому числу
- Повторяем до тех пор, пока число не станет равно 1
Пример: Разложение числа 84 на простые множители
Важно: Алгоритм эффективно работает, но для очень больших чисел могут потребоваться оптимизации (проверка делителей только до √n).
Быстрое возведение в степень
Быстрое возведение в степень — алгоритм, позволяющий возводить число в степень за логарифмическое время.
Принцип работы алгоритма:
- Использует свойство: aⁿ = (a²)ⁿ/² при четном n
- Использует свойство: aⁿ = a × aⁿ⁻¹ при нечетном n
- Сложность: O(log n) вместо O(n) у наивного алгоритма
Пример: Быстрое возведение 2¹⁰
Важно: Алгоритм быстрого возведения в степень особенно полезен при работе с большими числами и в криптографии.
Решето Эратосфена
Решето Эратосфена — эффективный алгоритм для нахождения всех простых чисел до заданного предела.
Принцип работы алгоритма:
- Создаем список чисел от 2 до n
- Начинаем с первого простого числа (2)
- Вычеркиваем все кратные этому числу
- Переходим к следующему невычеркнутому числу
- Повторяем до тех пор, пока не дойдем до √n
Пример: Поиск простых чисел до 30
Простые числа до 30: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Важно: Решето Эратосфена — один из самых эффективных алгоритмов для поиска простых чисел в диапазоне.