特殊的平方数
61*61=3721;3*7=2168*68=4624;4*6=24
条件:(1):前半段位数等于后半段位数;如:12*12=144;1*4=4这种格式不符合要求
(2):前半段分成两小段后的位数也必需相同;如:1205330*1205330=1452820408900;145*2820=408900;这种格式也不符合要求;
(3):前两段的乘积=0的格式不行,如:90000*90000=8100000000;810*0=0;这种格式不符合要求!
(4)这种格式也不符合要求:5025*5025=25250625;25*25=625;因为乘积的位数是3位数,而两个因子的位数之和是4位,所以不符合要求!
这道题是别人问的,我给出了几个符合条件的解答:
60004320^2=3600518418662400,3600*5184 = 18662400
6000043200^2=36000518401866240000,36000*51840=1866240000
70006860^2=4900960447059600,4900*9604 = 47059600
7000068600^2=49000960404705960000,49000*96040=4705960000
7905745000^2=62500804005025000000,62500*80400=5025000000
这些解都有特殊的格式(平方数的开头是一个平方数后面补0),0在里面起到了特殊的作用,可以写出很多这样的解。虽然符合条件,但是不好看。
一个比较好的例子是
8286653230^2=68668621754269432900,68668*62175=4269432900
但是后面依旧有0。一个后面没有0的例子是(注意这个解不符合条件1和2)
1784368202^2=3183969880308712804,3183*96988=308712804
问题是找到一个符合最开始的条件,且不能被10整除的解。 有点意思。
先说说,你是如何找到这么大的解的? 2# gxqcn
假如最小的那部分位数是r,他给的例子里r=1.
先化成x^2+10^5r=(10^3r+y)(10^2r+z).
然后解同余式x^2+10^5r=0(mod 10^3r+y),其中y是r位数,x是2r位数。
得出有解的y,然后得到相应的x,再实验x是否满足要求。 (*特殊的平方数,四位数部分*)
(*http://bbs.emath.ac.cn/redirect.php?tid=4044&goto=lastpost#lastpost*)
Clear["Global`*"];(*Clear all variables*)
(*这样的整数必然是完全平方数,因此使用穷举法*)
Do[ n=k^2;(*得到可能的整数*)
nd=IntegerDigits@n;(*得到各个位上的数字组成的向量*)
a=FromDigits@nd[];(*第一个乘数*)
b=FromDigits@nd[];(*第二个乘数*)
c=FromDigits@nd[];(*最后两位组成的乘数*)
(*如果a*b=c,那么输出n和k*)
If,
{k,32,99}](*控制循环范围*) 63452554^2=4026226609122916
4026*2266=09122916 550000332750,302500,366025,110722562500,302500366025110722562500
550000332750^2=302500366025110722562500
302500*366025=110722562500 600000432000,360000,518400,186624000000,360000518400186624000000 650000549250,422500,714025,301675562500,422500714025301675562500 700000686000,490000,960400,470596000000,490000960400470596000000 上面的是所有的六位数的结果
页:
[1]
2