Сумма кубов
Пусть
, тогда либо
, либо
,
где
,
и
- степень двойки.
...
Если допустим
,
, то снова два варианта: либо
, либо
,
где
,
и
- степень двойки.
Если простое
,
, то та же вилка: либо
, либо
,
где
,
и
- степень двойки.
Кстати, решение квадратного уравнения
по модулю
, где
и
- неизвестное, обязано существовать и без возведения в крутую степень по модулю. Поэтому следующий код тоже работает:
Код:
mtf()=
{
local(M:int);
local(a,t);
forprime(p=2, 5000,
M= (2^p-1):int;
a= Mod(3,M);
t= polrootsmod(a^2 - a*X + X^2, M);
if(#t==2, print(p))
)
};
Тогда, если для большого
получена частичная факторизация
, то имеет смысл сначала проверить, существует ли решение соответствующего полинома по модулю
Код:
polrootsmod(a^{q-1} - ... + X^{q-1}, M)
где
и простое
Если не существует, то сразу можно отбраковывать данное
.
Правильно ли это?