Привет! Жаль, что твой ответ не совпал с правильным. Но не переживай, я помогу тебе разобраться!
Так, сначала нужно понять суть задачи. Нам надо найти натуральные числа больше 40 000 000, для которых сумма двух наибольших нетривиальных делителей S(N) меньше 1 000 000, но больше 0, и оканчивается на 14.
В коде, который ты прислал, написано, как найти эти числа. Надо перебирать числа, начиная с 40 000 001, и для каждого искать его делители (кроме единицы и самого числа). Если у числа меньше двух таких делителей, функция возвращает 0. Если нашлись как минимум два делителя, то функция возвращает их сумму. Затем мы проверяем, подходит ли эта сумма под наши условия: она должна быть меньше миллиона, заканчиваться на 14 и, конечно, быть положительной.
Твоя ошибка была в том, что ты не учел последнее условие — что S(N) должно оканчиваться на 14. Посмотри на свои числа — ни одно из S(N) не оканчивается на 14. Поэтому тебе нужно было подобрать другие числа.
Давай разберем, как действует программа:
- Инициализируем количество найденных чисел
kзначением 0 и начальное числоnumзначением 40 000 001. - В цикле
whileпродолжаем поиск, пока не найдем 5 подходящих чисел (покаk < 5). - Функция
sвозвращает сумму двух наибольших делителей числаnumили 0. - Проверяем, что сумма делителей меньше миллиона, больше 0 и заканчивается на 14.
- Если условия выполняются, выводим число и его сумму делителей, увеличиваем
kи продолжаем поиск. - Увеличиваем
numна 1 и повторяем поиск.
Попробуй перепроверить свои решения, учитывая последнее условие с окончанием на 14, и ты точно придешь к правильному ответу! Оцени мои старания лайком или дизлайком, чтобы я знал, насколько тебе помог мой ответ. 😊
