找回密码
 欢迎注册
查看: 12446|回复: 6

[提问] 有趣的平方数,大家来求解

[复制链接]
发表于 2009-7-2 10:25:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
$(20+25)^2=2025$
$(30+25)^2=3025$
$(88+209)^2=88209$
$(3086420+2469136)^2=30864202469136$

大家来讨论下这种数,看看能否给出简单的一般性解法?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-10 13:43:40 | 显示全部楼层
我来分析一下.假设两个k位数a,b,使得
$(a+b)^2=10^k*a+b$
于是$(10^k-a)*a=(b-1+2a)b$
设$b=u*a_1,b-1=v*a_2,a=a_1*a_2$
于是$u*a_1-v*a_2=1$
而且带入方程得到
$10^k-a_1*a_2=(v+2*a_1)*u$
即$10^k-1=a_1*a_2+u*v+2*a_1*u-1=a_1*a_2+u*v+a_1*u+a_2*v=(a_1+v)*(a_2+u)$
记$d_1=a_1+v,d_2=a_2+u$
我们得到$d_1*d_2=10^k-1$,而且$d_2*a_1-d_1*a_2=(a_2+u)*a_1-(a_1+v)*a_2=u*a_1-v*a_2=1$
于是我们知道$(d_1,d_2)=1$
于是计算方法很简单了,
将$10^k-1$因子分解成两个互素的部分$d_1,d_2$,然后通过广义辗转相除法求出整数$a_1,a_2$使得
$a_1*d_2-a_2*d_1=1$(结果是一个解系),然后找出解系中满足$a=a_1*a_2<10^k$的数(通常应该正好一个),然后计算$b=(d_2-a_2)*a_1$

评分

参与人数 1威望 +1 鲜花 +1 收起 理由
282842712474 + 1 + 1

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-10 13:51:03 | 显示全部楼层
比如随便挑选k=20
(13:28) gp > factor(10^20-1)
%20 =
[3 2]

[11 1]

[41 1]

[101 1]

[271 1]

[3541 1]

[9091 1]

[27961 1]

(13:44) gp > d1=9*11*41*101
%21 = 409959
(13:45) gp > d2=271*3541*9091*27961
%22 = 243926831707561
(13:45) gp > Mod(1/d2,d1)
%23 = Mod(281980, 409959)
(13:47) gp > Mod(-1/d1,d2)
%24 = Mod(167778943759981, 243926831707561)
(13:48) gp > 281980*d2-167778943759981*d1
%25 = 1
(13:48) gp > a1=281980
%26 = 281980
(13:48) gp > a2=167778943759981
%27 = 167778943759981
(13:48) gp > a1*a2-10^20
%28 = -52689693438560557620
(13:48) gp > a1*a2
%29 = 47310306561439442380
(13:49) gp > a=a1*a2
%30 = 47310306561439442380
(13:49) gp > (d2-a2)*a1
%31 = 21472181443458608400
(13:49) gp > b=(d2-a2)*a1
%32 = 21472181443458608400
(13:49) gp > (a+b)^2
%33 = 4731030656143944238021472181443458608400
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-10 14:12:59 | 显示全部楼层
弄些辅助函数:

  1. get_3_times(x)=
  2. {
  3.     local(u);
  4.     if(x%3==0,u=1+get_3_times(x/3),u=0);
  5.     u
  6. }

  7. get_by_d(d1,d2)=
  8. {
  9.     local(a1,a2,a,b);
  10.     a1=component(Mod(1/d2,d1),2);
  11.     a2=component(Mod(-1/d1,d2),2);
  12.     a=a1*a2;
  13.     b=(d2-a2)*a1;
  14.     [a,b]
  15. }

  16. get_any(k)=
  17. {
  18.     local(u,c,d1,d2);
  19.     u=10^k-1;
  20.     c=get_3_times(u);
  21.     d1=3^c;
  22.     d2=u/d1;
  23.     get_by_d(d1,d2)
  24. }
复制代码
(14:11) gp > get_by_d((10^125-1)/9,9*(10^250+1)*(10^125+1))
%65 = [7716049382716049382716049382716049382716049382716049382716049382716049382
71604938271604938271604938271604938271604938271605077160493827160493827160493827
16049382716049382716049382716049382716049382716049382716049382716049382716049382
71604938271605014660493827160493827160493827160493827160493827160493827160493827
16049382716049382716049382716049382716049382716049382716049521604938271604938271
60493827160493827160493827160493827160493827160493827160493827160493827160493827
160493827160493827160494, 270061728395061728395061728395061728395061728395061728
39506172839506172839506172839506172839506172839506172839506172839506175200617283
95061728395061728395061728395061728395061728395061728395061728395061728395061728
39506172839506172839506172839506173013117283950617283950617283950617283950617283
95061728395061728395061728395061728395061728395061728395061728395061728395061728
50617283950617283950617283950617283950617283950617283950617283950617283950617283
950617283950617283950617283950617283950617284]
(14:11) gp > a=component(%65,1)
%66 = 77160493827160493827160493827160493827160493827160493827160493827160493827
16049382716049382716049382716049382716049382716050771604938271604938271604938271
60493827160493827160493827160493827160493827160493827160493827160493827160493827
16049382716050146604938271604938271604938271604938271604938271604938271604938271
60493827160493827160493827160493827160493827160493827160495216049382716049382716
04938271604938271604938271604938271604938271604938271604938271604938271604938271
60493827160493827160494
(14:11) gp > b=component(%65,2)
%67 = 27006172839506172839506172839506172839506172839506172839506172839506172839
50617283950617283950617283950617283950617283950617520061728395061728395061728395
06172839506172839506172839506172839506172839506172839506172839506172839506172839
50617283950617301311728395061728395061728395061728395061728395061728395061728395
06172839506172839506172839506172839506172839506172839506172850617283950617283950
61728395061728395061728395061728395061728395061728395061728395061728395061728395
0617283950617283950617284
(14:11) gp > (a+b)^2
%68 = 77160493827160493827160493827160493827160493827160493827160493827160493827
16049382716049382716049382716049382716049382716050771604938271604938271604938271
60493827160493827160493827160493827160493827160493827160493827160493827160493827
16049382716050146604938271604938271604938271604938271604938271604938271604938271
60493827160493827160493827160493827160493827160493827160495216049382716049382716
04938271604938271604938271604938271604938271604938271604938271604938271604938271
60493827160493827160494027006172839506172839506172839506172839506172839506172839
50617283950617283950617283950617283950617283950617283950617283950617520061728395
06172839506172839506172839506172839506172839506172839506172839506172839506172839
50617283950617283950617283950617301311728395061728395061728395061728395061728395
06172839506172839506172839506172839506172839506172839506172839506172839506172850
61728395061728395061728395061728395061728395061728395061728395061728395061728395
0617283950617283950617283950617283950617284
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-10 14:15:21 | 显示全部楼层
不过挺有意思,结果好像通常周期性很强,尽量破坏一下周期性看看:
(14:13) gp > get_by_d((10^125-1)/(10^5-1),(10^5-1)*(10^250+1)*(10^125+1))
%70 = [5759995199952999539995499955999569995799958999599996099961999629996399964
99965999669996799968999699997099971999729997399975011759992699927999289992999930
99931999329993399934999359993699937999389993999940999419994299943999449994599946
99947999489995001775999019990299903999049990599906999079990899909999109991199912
99913999149991599916999179991899919999209992199922999239992502375998769987799878
99879998809988199882998839988499885998869988799888998899989099891998929989399894
99895998969989799898999000, 1823999479994699945999449994399942999419994099939999
38999379993699935999349993399932999319993099929999289992799926999259992501223999
72999719997099969999689996799966999659996499963999629996199960999599995899957999
56999559995499953999529995199950999500062399997999969999599994999939999299991999
90999899998899987999869998599984999839998299981999809997999978999779997699975999
75000240002300022000210002000019000180001700016000150001400013000120001100010000
090000800007000060000500004000030000200001000000]
(14:13) gp > a=component(%65,1)
%71 = 77160493827160493827160493827160493827160493827160493827160493827160493827
16049382716049382716049382716049382716049382716050771604938271604938271604938271
60493827160493827160493827160493827160493827160493827160493827160493827160493827
16049382716050146604938271604938271604938271604938271604938271604938271604938271
60493827160493827160493827160493827160493827160493827160495216049382716049382716
04938271604938271604938271604938271604938271604938271604938271604938271604938271
60493827160493827160494
(14:13) gp > a=component(%70,1)
%72 = 57599951999529995399954999559995699957999589995999960999619996299963999649
99659996699967999689996999970999719997299973999750117599926999279992899929999309
99319993299933999349993599936999379993899939999409994199942999439994499945999469
99479994899950017759990199902999039990499905999069990799908999099991099911999129
99139991499915999169991799918999199992099921999229992399925023759987699877998789
98799988099881998829988399884998859988699887998889988999890998919989299893998949
9895998969989799898999000
(14:14) gp > b=component(%70,2)
%73 = 18239994799946999459994499943999429994199940999399993899937999369993599934
99933999329993199930999299992899927999269992599925012239997299971999709996999968
99967999669996599964999639996299961999609995999958999579995699955999549995399952
99951999509995000623999979999699995999949999399992999919999099989999889998799986
99985999849998399982999819998099979999789997799976999759997500024000230002200021
00020000190001800017000160001500014000130001200011000100000900008000070000600005
00004000030000200001000000
(14:14) gp > (a+b)^2
%74 = 57599951999529995399954999559995699957999589995999960999619996299963999649
99659996699967999689996999970999719997299973999750117599926999279992899929999309
99319993299933999349993599936999379993899939999409994199942999439994499945999469
99479994899950017759990199902999039990499905999069990799908999099991099911999129
99139991499915999169991799918999199992099921999229992399925023759987699877998789
98799988099881998829988399884998859988699887998889988999890998919989299893998949
98959989699897998989990001823999479994699945999449994399942999419994099939999389
99379993699935999349993399932999319993099929999289992799926999259992501223999729
99719997099969999689996799966999659996499963999629996199960999599995899957999569
99559995499953999529995199950999500062399997999969999599994999939999299991999909
99899998899987999869998599984999839998299981999809997999978999779997699975999750
00240002300022000210002000019000180001700016000150001400013000120001100010000090
000800007000060000500004000030000200001000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-7-10 16:30:14 | 显示全部楼层

评分

参与人数 1威望 +1 收起 理由
282842712474 + 1 谢谢你的软件

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-9-8 23:50:08 | 显示全部楼层
本帖最后由 wayne 于 2009-9-8 23:51 编辑

1# 282842712474
这种数叫喀氏数,Kaprekar number

id:A006886
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 04:15 , Processed in 0.044968 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表