Функция 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
)
/
9511
28072587476617996036103218722657345
63403827834029876945046579760043922
4658035965592773657961
После этого нужно убедиться, что это число составное.
PrimeQ[n]
False
Значит, можно применить функцию FactorIntegerECM.
m
=
FactorIntegerECM[n]
Через 205.375 с (процессор Pentium 2.4 ГГц) получаем один из его делителей:
587492521482839879
Он простой.
PrimeQ[m]
True
Поэтому можем заниматься только частным n = n/m.
n
=
n
/
m
477837358776284792683873587315
9342707436119775645430680034874628800586
6959
Опять нужно проверить, простое ли оно.
PrimeQ[n]
Эта проверка занимает всего лишь 0.016 с, и оказывается, что оно составное.
False