Проект Эйлер 642 - PullRequest
       9

Проект Эйлер 642

0 голосов
/ 01 декабря 2018

Вот проблема:

Пусть f (n) будет наибольшим простым множителем n и F (n) = сумма (f (i) для i в диапазоне (2, n + 1))).

Например, F (10) = 32, F (100) = 1915 и F (10000) = 10118280.

Найти F (201820182018).Дайте свой модуль ответа 10 ** 9.

Я знаю, как это сделать в принципе (на Python) и получить ответы на меньшие числа без задачи.Я многому научился в борьбе с этим.Метод gmpy2 Кейса Ван Хорсена для генерации необходимых простых чисел был невероятно быстрым для огромных чисел, но просто не сработал бы для числа 201820182018 годов.Я пришел к выводу, что это число слишком велико для моего 8-гигабайтного MacBookPro или моего WindowsPC 16-гигабайтного компьютера.16-гигабайтный ПК не имеет памяти для использования сита Эратосфена, разработанного Карлом Суигартом.Я мог бы решить эту проблему, если бы у меня был доступ к компьютеру со значительно большей памятью, но мне интересно, что-то не хватает в подходе.

...