Функция FactorIntegerECM (попытка факторизации больших чисел Мерсенна)
Теперь давайте разложим n (оно составное, так как является произведением двух последовательных достаточно больших простых чисел).
FactorIntegerECM[n]И вот один из сомножителей:
29996224275851Вот еще один пример применения функции FactorIntegerECM.
n = (2 ^ 58 - 27) * (2 ^ 127 - 1) 4903985730770843887365 5151436140637119954221204852703259Теперь ищем какой-нибудь делитель этого числа.
288230376151711717Наконец, освоившись с функцией FactorIntegerECM на этих более или менее простых примерах, можем попытаться применить ее к факторизации числа Мерсенна Мт. Как мы помним, оно имеет делитель 9511. Сначала убедимся, что он простой.
PrimeQ[9511] TrueТеперь можем разделить на него число Мерсенна М317.
n = (2 ^ 317 - 1) / 951128072587476617996036103218722657345634038278340298769450465797600439224658035965592773657961После этого нужно убедиться, что это число составное.
PrimeQ[n] FalseЗначит, можно применить функцию FactorIntegerECM.
m = FactorIntegerECM[n]Через 205.375 с (процессор Pentium 2.4 ГГц) получаем один из его делителей:
587492521482839879Он простой.
PrimeQ[m] TrueПоэтому можем заниматься только частным n = n/m.
n = n / m 47783735877628479268387358731593427074361197756454306800348746288005866959Опять нужно проверить, простое ли оно.
PrimeQ[n]Эта проверка занимает всего лишь 0.016 с, и оказывается, что оно составное.
False