Сумма кубов 

Пусть 

, тогда либо 

, либо 

,
где 

, 

 и 

 - степень двойки.
...
Если допустим 

, 

, то снова два варианта: либо 

, либо 

,
где 

, 

 и 

 - степень двойки.
Если простое 

, 

, то та же вилка: либо 

, либо 

,
где 

, 

 и 

 - степень двойки.
Кстати, решение квадратного уравнения 

 по модулю 

, где 

 и 

 - неизвестное, обязано существовать и без возведения в крутую степень по модулю. Поэтому следующий код тоже работает:
Код:
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)
где 

 и простое 

Если не существует, то сразу можно отбраковывать данное 

.
Правильно ли это?