Скорее всего новое решение если и есть, то оно ну очень огромное должно быть.
Поиск в pari/gp решением уравнения Пелля и проверкой на квадрат найденной абсциссы до некоторой её "высоты" (выбрал 10^81):
1) уравнение
1 + 3*v*q*X^2 + 3*v^2*q^2*X^4 = p*S^2Код:
pmn7()=
{
M= 10^81;
for(v=1000, 10000,
z= 3 + 3*v + v^2;
D= divisors(z);
for(i=1, #D,
p= D[i]; q= z/p;
Q= iferr(bnfinit('X^2-12*p), E, 0);
if(Q,
U= iferr(Q.fu, E, 0);
if(U, for(j=1, #U, u= U[j];
u1= abs(polcoeff(lift(u), 1)); u0= abs(polcoeff(lift(u), 0));
if(u1==floor(u1) && u0==floor(u0),
N= iferr(bnfisintnorm(Q,-3), E, 0);
if(N, for(k=1, #N, n= N[k];
for(l=0, 48,
nu= lift(n*u^l);
n1= abs(polcoeff(nu, 1)); n0= abs(polcoeff(nu, 0));
if(n1==floor(n1) && n0==floor(n0),
a= u0; b= (u0+1)*n0/n1; c= u1;
xc= (n0-3)/(6*v*q); x1= n0; y1= n1;
while(xc<M,
if(xc==floor(xc),
print("---- v = ",v," p = ",p," q = ",q); print("X^2 = ",xc,"\n");
if(issquare(xc), print("\n\n++++++++++++++++ v = ",v," p = ",p," q = ",q," X = ",sqrtint(xc),"\n\n\n"))
);
x2= a*x1 + b*y1; y2= c*x1 + a*y1;
x1= x2; y1= y2; xc= (x1-3)/(6*v*q);
);
break()
)
)
))
)
))
)
)
)
};
2) уравнение
3 - 3*q*X^2 + q^2*X^4 = p*S^2Код:
pmn8()=
{
M= 10^81;
for(v=1, 10000,
z= (2 + v)*(1 + v + v^2);
D= divisors(z);
for(i=1, #D,
p= D[i]; q= z/p;
Q= iferr(bnfinit('X^2-4*p), E, 0);
if(Q,
U= iferr(Q.fu, E, 0);
if(U, for(j=1, #U, u= U[j];
u1= abs(polcoeff(lift(u), 1)); u0= abs(polcoeff(lift(u), 0));
if(u1==floor(u1) && u0==floor(u0),
N= iferr(bnfisintnorm(Q,-3), E, 0);
if(N, for(k=1, #N, n= N[k];
for(l=0, 48,
nu= lift(n*u^l);
n1= abs(polcoeff(nu, 1)); n0= abs(polcoeff(nu, 0));
if(n1==floor(n1) && n0==floor(n0),
a= u0; b= (u0+1)*n0/n1; c= u1;
xc= (n0+3)/(2*q); x1= n0; y1= n1;
while(xc<M,
if(xc==floor(xc) && xc>1,
print("---- v = ",v," p = ",p," q = ",q); print("X^2 = ",xc,"\n");
if(issquare(xc), print("\n\n++++++++++++++++ v = ",v," p = ",p," q = ",q," X = ",sqrtint(xc),"\n\n\n"))
);
x2= a*x1 + b*y1; y2= c*x1 + a*y1;
x1= x2; y1= y2; xc= (x1+3)/(2*q);
);
break()
)
)
))
)
))
)
)
)
};