Тест Лукаса-Лемера на первичность с питоном - PullRequest
0 голосов
/ 06 июля 2018

Я написал код ниже, чтобы получить ряд Лукаса-Лемера до p, для p показатель степени числа Мерсенна. После проверки я обнаружил, что он не работает для некоторых простых чисел p, таких как 11, 23, 29 и т. Д. Любая помощь будет очень ценной!

Вот код:

def ll_series (p):
    ll_list=[4]
    print 4
    for i in range(1, p+1):
        ll_list.append((ll_list[i-1]**2 - 2) % (2**p-1))
        print(ll_list[i])
    return ll_list

1 Ответ

0 голосов
/ 06 июля 2018

Тест Лукаса-Лемера проверяет, является ли число Мерсенна простым. 11 не является числом Мерсенна, поэтому тест не пройден. Число Мерсенса - M_n = 2^n-1.

http://mathworld.wolfram.com/MersenneNumber.html

p.s реализация может быть более эффективной, если вычислить M=(2^p-1) только один раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...