这时如果y和z一个数中含有2或5的因子,对应另外一个数也必须含有,我们可以将这些公因子消去,同样对于其他素数公因子也可以消去,最后我们得到一个化简的方程形如:
$2^a5^bx^3=z^3-y^3$,其中三个数$y^3,z^3,2^a5^bx^3$两两互素,而且$a-=b!=0(mod 3)$,x不含因子2和5
由于y,z互素,方程左边是偶数,所以必然有y和z都是奇数,所以$y^2+yz+z^2$是奇数.
而且$(z-y,z^2+zy+y^2)=(z-y,3zy)=(z-y,3)$,所以z-y和$z^2+zy+y^2$的公因子是1或3。
如果两者公因子是1,那么u,v都不是3的倍数,那么我们知道只能是一下两种情况:
i)${(z-y=2^a*u^3),(z^2+zy+y^2=5^b*v^3):}$
即$3(z+y)^2=4*5^b*v^3-4^a*u^6$,由于(5,u)=1,两边同时模5得到
$+-3,0-=+-1(mod 5)$矛盾,所以这种情况可以淘汰
ii)${(z-y=2^a5^bu^3),(z^2+zy+y^2=v^3):}$
即$3(z+y)^2=4v^3-4^a25^bu^6$,两边同时模9
左边模9只能是0或3,而$v^3$模9为$+-1$,$4^a25^b=100^b*64^{{a-b}/3}-=1(mod9),u^6=1(mod9)$
得到$v^3=(z+y)^2=1(mod 9)$,这里好像还是不行,再看看 而同样再z-y和$z^2+zy+y^2$公因子是3的时候也分两种情况,同样第一种非常容易淘汰,而第二种比较难淘汰。 只考虑10, 100就可以了 不明白是怎么得来的
回复 33# 无心人 的帖子
我以前参考人家的一篇论文写了个计算根号连分数算法,不知道各位有没其他更高效算法?我觉得这个已经很快了。
vector<int> sqrt2Fraction(long n)//计算根号的连分数,返回连分数序列
{
vector<int> ret;
long sn=sqrt(n);
ret.push_back(sn);//返回值的格式为 根号整数部分+连分数部分
if( sn*sn!=n)
{
long p=0,q=1,a;
long bp,bq,ba,bbp,bbq,bba;//,p1,p2,p3;
a=sn;
bbp = a*q-p;
bbq = ( n - bbp*bbp)/q;
bba = ( a + bbp)/bbq;
ret.push_back(bba);
p = bbp; q = bbq; a = bba;
while(true)
{
bp = a*q - p;
bq = ( n - bp*bp)/q;
ba = ( sn + bp)/bq;
p = bp; q = bq; a = ba;
if (( a==bba)&&( p==bbp)&&( q==bbq)) break;
ret.push_back(ba);
}
}
return ret;
} 我倾向于么有解 这样的数我可以找到好多呀,尽管是比较大,但是还是比较好找的 楼主对数论感兴趣,数论这个东东听说难死人了。 一个数是另一个整数的平方并不希奇,
但一个完全平方数可以分拆成两个完全平方数就比较奇特了。如49分成4和9,它们均是某个整数的平方。
下面列举的是前32个(据说10亿以下仅有119个):
还有更奇妙的,其中 ...
gxqcn 发表于 2008-10-29 20:02 http://bbs.emath.ac.cn/images/common/back.gif
用oracle求得的前207个
---------------- ------------------------ ------------------------
49 4 9
169 16 9
361 36 1
1225 1 225
1444 144 4
1681 16 81
3249 324 9
4225 4 225
4900 4 900
15625 1 5625
16900 16 900
36100 36 100
42025 4 2025
49729 49 729
64009 6400 9
81225 81 225
93025 9 3025
122500 1 22500
144400 144 400
168100 16 8100
225625 225 625
237169 23716 9
324900 324 900
422500 4 22500
490000 4 90000
519841 51984 1
819025 81 9025
950625 9 50625
970225 9 70225
1024144 1024 144
1442401 144 2401
1562500 1 562500
1600225 1600 225
1690000 16 90000
1692601 169 2601
2079364 207936 4
2304324 2304 324
3136441 3136 441
3610000 36 10000
4096576 4096 576
4202500 4 202500
4678569 467856 9
4950625 4 950625
4950625 49 50625
4972900 49 72900
5184729 5184 729
5769604 576 9604
5929225 5929 225
6400900 6400 900
8122500 81 22500
9302500 9 302500
9455625 9 455625
9765625 9 765625
12250000 1 2250000
14440000 144 40000
15405625 1 5405625
16810000 16 810000
22562500 225 62500
23716900 23716 900
24019801 2401 9801
32490000 324 90000
36156169 361 56169
42250000 4 2250000
49000000 4 9000000
49632025 49 632025
51984100 51984 100
63504961 63504 961
67650625 676 50625
78411025 784 11025
81902500 81 902500
92294449 9229444 9
92640625 9 2640625
95062500 9 5062500
96138025 961 38025
97022500 9 7022500
102414400 1024 14400
116964225 116964 225
123765625 1 23765625
129618225 1296 18225
144240100 144 240100
144600625 144 600625
152127556 1521 27556
156250000 1 56250000
160022500 1600 22500
169000000 16 9000000
169260100 169 260100
193627225 1936 27225
207936400 207936 400
230432400 2304 32400
270438025 2704 38025
313644100 3136 44100
324540225 324 540225
324900625 324900 625
341991049 34199104 9
360050625 3600 50625
361000000 36 1000000
361950625 361 950625
409657600 4096 57600
420250000 4 20250000
462465025 4624 65025
467856900 467856 900
485100625 4 85100625
495062500 4 95062500
495062500 49 5062500
497290000 49 7290000
518472900 5184 72900
576960400 576 960400
577681225 5776 81225
592922500 5929 22500
624100324 624100 324
640090000 6400 90000
705699225 7056 99225
749609641 74960964 1
812250000 81 2250000
817102225 81 7102225
915849169 915849 169
930250000 9 30250000
945562500 9 45562500
976562500 9 76562500
1024576081 1024 576081
1225000000 1 225000000
1404225729 1404225 729
1444000000 144 4000000
1540562500 1 540562500
1587624025 15876 24025
1681000000 16 81000000
1691265625 169 1265625
1699500625 16 99500625
2256250000 225 6250000
2307361225 2307361 225
2371690000 23716 90000
2401980100 2401 980100
2528178961 25281 78961
2998438564 299843856 4
3132976729 31329 76729
3249000000 324 9000000
3249570025 3249 570025
3615015625 36 15015625
3615616900 361 5616900
3663396676 3663396 676
3844248004 3844 248004
3969252004 3969 252004
4225000000 4 225000000
4900000000 4 900000000
4963202500 49 63202500
4987890625 49 87890625
5198410000 51984 10000
6350496100 63504 96100
6746486769 674648676 9
6765062500 676 5062500
7841102500 784 1102500
8113505625 81 13505625
8122515625 81225 15625
8190250000 81 90250000
8549776225 8549776 225
8649558009 8649 558009
9001265625 900 1265625
9229444900 9229444 900
9264062500 9 264062500
9506250000 9 506250000
9613802500 961 3802500
9702250000 9 702250000
9801990025 9801 990025
10241440000 1024 1440000
11561625625 1156 1625625
11696422500 116964 22500
12127515625 1 2127515625
12152196169 12152196 169
12376562500 1 2376562500
12961822500 1296 1822500
14424010000 144 24010000
14442030625 1444 2030625
14460062500 144 60062500
15212755600 1521 2755600
15376992016 15376 992016
15625000000 1 5625000000
15920130625 159201 30625
16002250000 1600 2250000
16724955625 16 724955625
16900000000 16 900000000
16926010000 169 26010000
17642480625 1764 2480625
19362722500 1936 2722500
20793640000 207936 40000
21162975625 2116 2975625
22467611664 224676 11664
22537515625 225 37515625
23043240000 2304 3240000
24011671849 2401 1671849
24502580089 245025 80089
25003515625 2500 3515625
25614402025 256 14402025
26316950625 263169 50625
27043802500 2704 3802500
29164100625 2916 4100625
30580915876 305809 15876
31364410000 3136 4410000
32454022500 324 54022500
32490062500 324900 62500
33644730625 3364 4730625
34199104900 34199104 900
36005062500 3600 5062500
36100000000 36 100000000
36195062500 361 95062500
38445405625 3844 5405625
39312975625 393129 75625
39942420736 399424 20736
207 rows selected. f(x)={(1,(x!=0)),(x^2+1,(x=0)):}
我觉得这个公式可以用!\(^o^)/~