Условие
Простые делители числа 13195 — это 5, 7, 13 и 29.
Каков самый большой делитель числа 600851475143, являющийся простым числом?
Решение задачи от разработчиков на Python:
Copy to Clipboard
Еще одно решение задачи на Python:
Copy to Clipboard
Еще одно решение задачи на Python:
Copy to Clipboard
Решение с помощью факторизации:
Copy to Clipboard
Еще одно простое решение:
Простое число — это натуральное число больше единицы, которое делится на 1 и само на себя. Чтобы найти все простые делители разумно будет сократить диапазон значений для перебора, поэтому будем перебирать до квадратного корня 600851475143 округленного вверх (функцией math.ceil)
Перебор будем вести начиная с числа 3.
Если i делит число на цело, рекурсивно обращаемся к функции issimple c аргументом i.
Функция issimple возвращает пустой список если число является простым. В этом случае число попадает в результирующий список.
Далее остается только вернуть максимальное значение массива простых чисел, которые нацело делят число 600851475143
Copy to Clipboard
Понравилось решение? Поделись своей реализацией в комментариях! 👇
Подписаться
авторизуйтесь
0 комментариев
Старые