Тема 25. Обработка целочисленной информации

25.04 Основная теорема арифметики

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#61487

Найдите все натуральные числа, принадлежащие отрезку [33  333  333  ; 333  333  333  ], у которых ровно 3  различных четных делителя. Общее количество делителей может быть любым. В ответе укажите количество данных чисел.

Показать ответ и решение

По основной теореме арифметики (ОТА) каждое натуральное число, большее 1, можно разложить на простые множители. То есть некоторое натуральное число x  можно разложить в следующий вид:

x = p1q1 ⋅p2q2 ⋅...⋅pnqn

Здесь pi,i ∈ [1;n]  – некоторое простое число, а qi,i ∈ [1;n]  – натуральный показатель степени. В таком случае число обязательно имеет (q1 + 1)⋅(q2 + 1)⋅...⋅(qn + 1)  делителей (каждое простое число можно брать от 0 до qi  раз, где i ∈ [1;n]  ).

В данной задаче необходимо, чтобы у числа было ровно 3  чётных делителей. Значит в разложении числа должно участвовать простое число 2  .

Пусть число имеет следующий вид:

x = 2k ⋅p1q1 ⋅...⋅pnqn

Выпишем количество делителей числа:

(k+ 1)⋅(q1 + 1)⋅(q2 + 1)⋅...⋅(qn + 1)

Выпишем количество делителей числа, не содержащих степень числа 2, то есть не являющихся чётными:

(q1 + 1)⋅(q2 + 1)⋅...⋅(qn + 1)

Из общего количества делителей вычтем количество делителей, не являющихся чётными, и получим количество чётных делителей:

k ⋅(q1 +1) ⋅(q2 + 1)⋅...⋅(qn + 1)

Обозначим произведение всех (qi +1)  за m  . Так как количество по условию должно быть равно 3  , то k⋅m = 3  . Так как число 3  – простое, то либо k = 3  и m = 1  , либо k = 1  и m = 3  .

В первом случае это число 23  , так как m = 1  означает, что других простых чисел в разложении числа нет.

Во втором случае произведение всех (qi + 1)  равно 3  , а значит только один множитель должен быть равен 3  (так как 3  – простое число). Отсюда некоторое qi = 2  . Поэтому число будет иметь вид 21 ⋅p2  .

В общем случае это можно представить, как    2
2⋅p ,  где p  – любое простое число (включая число 2  , что обобщает эти два случая).

Таким образом, нужно будет перебрать простые числа так, чтобы получить все возможные числа вида 2 ⋅p2  из отрезка [33333333;333333333]  .

def is_prime(n):  # Функция проверки на простое число
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:  # Если нашли нетривиальный делитель
            return False  # То число не простое, возвращаем False
    return n > 1  # Если число равно 1, то оно непростое, и будет возвращено False, а иначе True


# Нужно перебрать все числа вида x = 2 * p**2, где p - простое число
ans = 0  # Счётчик для ответа

# Находим максимально возможное p для отрезка
p_max = int(333_333_333 ** (1 / 2))

# Перебираем простые числа от 2 до максимально возможного
for p in range(2, p_max + 1):
    if is_prime(p):  # Если число p - простое
        # То проверяем, что итоговое число будет принадлежать отрезку
        if 33_333_333 <= 2 * p ** 2 <= 333_333_333:
            ans += 1
print(ans)

Ответ: 974

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!