Bill Allombert on Sat, 18 Nov 2023 10:18:30 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: question on finding exhaustive search algorithm for a^2+b^2 = N


On Fri, Nov 17, 2023 at 09:19:22PM -0600, Kurt Foster wrote:
> On Nov 17, 2023, at 7:11 PM, American Citizen wrote:
> 
> > My goal is an exhaustive search of 2 squares = N algorithm
> 
> I dashed off some code which may be overkill (it absolutely clobbers the
> problem) but seems to get the job done.  I used your example as a test.
> 
> ? K=bnfinit(x^2+1);
> ? N=5*13*17*29*37;
> ? v=bnfisintnorm(K,N);
> ? w=vecsort(vector(#v,i,abs([polcoeff(v[i],0),polcoeff(v[i],1)])),1)
> %4 = [[64, 1087], [103, 1084], [167, 1076], [191, 1072], [236, 1063], [281,
> 1052], [292, 1049], [359, 1028], [449, 992], [512, 961], [568, 929], [601,
> 908], [607, 904], [664, 863], [673, 856], [743, 796], [796, 743], [856,
> 673], [863, 664], [904, 607], [908, 601], [929, 568], [961, 512], [992,
> 449], [1028, 359], [1049, 292], [1052, 281], [1063, 236], [1072, 191],
> [1076, 167], [1084, 103], [1087, 64]]

Interesting! It seems to work, but according to the documentation
"Computes  a complete system of solutions  (modulo units of positive norm)"
you should have had the same issue as with qfbsolve.
bnfisintnorm returns both 103*x-1084  and 1084*x-103 (with x=I)
but since I is a unit of positive norm, you could get in theory 
103*x-1084 and x*(1084*x-103) = -103+1084*x
which would be identical after taking the absolute values.

Cheers,
Bill.