|
> No.1592[元記事へ]
> 問題
> n桁の自然数ABC…XYZがある。
> 1桁の自然数k≠1をかけると、ABC…XYZ*k=ZABC…XYになる数が存在するときのnとABC…XYZは?
6桁の場合
(k*10-1)*ABCDEF = (ABCDEF*k)*10 - ABCDEF = 999999*F
∵
FABCDE0
-) ABCDEF
----------
F000000 - F = (10^6-1)*F = 999999*F
∴ABCDEF/999999=F/(k*10-1) ← 式(1)
また
循環節6の循環小数X=0.{ABCDEF}、A≠0とする。
10^6*X - X = ABCDEF.{ABCDEF} - 0.{ABCDEF} = ABCDEF
左辺=(10^6-1)*X=999999*Xより、ABCDEF/999999=X ← 式(2)
式(1),(2)を比較すると、F/(k*10-1)が循環節6の循環小数になることを示唆する。
これを見つけるには、F=0~9、k=1~9で、検索すればよい。
実際には
分子Fは、計算結果として0は該当しないので、F=1~9
分母 k*10-1 は、9,19,29,39,49,59,69,79,89
6桁のため、小数点第一位は0でない。すなわち、F≧k
として、
F k*10-1 結果
4 39 0.{102564}
5 39 0.{128205}
6 39 0.{153846}
7 39 0.{179487}
7 49 0.{142857}
8 39 0.{205128}
9 39 0.{230769}
となる。
●サンプル・プログラム
!ABC…XYZ*k=ZABC…XYの基本形
LET t0=TIME
FOR k=1 TO 9 !素因数19,29,39,49,59,69,79,89
LET x=10*k-1
PRINT "k=";k
FOR Z=k TO 9 !Z≧k
IF Z<x THEN !真分数 Z/(10*k-1) を
PRINT Z;"/";x;"= "; !循環小数で表す
CALL recuring(Z,x)
END IF
NEXT Z
PRINT
NEXT k
PRINT "計算時間=";TIME-t0
END
!参考 Math フォルダ内 RECURING.BAS
EXTERNAL SUB recuring(a,b) !a/bを循環小数に直す。ただし,a<bとする 。
LET radix=10 !基数
DIM q(1 TO 1000) !商の各位の数
DIM r(0 TO 1000) !余りの各位の数
LET r(0)=a
LET k=1 !小数点以下の桁位置
DO
LET q(k)=int(r(k-1)*radix/b)
LET r(k)=MOD(r(k-1)*radix,b)
LET j=0
DO UNTIL j=k-1 OR r(j)=r(k)
LET j=j+1
LOOP
IF r(j)=r(k) THEN EXIT DO
LET k=k+1
LOOP
! 結果の表示
PRINT "0.";
FOR i=1 TO j
PRINT q(i);
NEXT i
PRINT "{"; !循環節を{と}で括って表示する
FOR i=j+1 TO k
PRINT STR$(q(i));
NEXT i
PRINT "}"; " 循環節=";k
END SUB
●実行結果
k= 1
1 / 9 = 0.{1} 循環節= 1
2 / 9 = 0.{2} 循環節= 1
3 / 9 = 0.{3} 循環節= 1
4 / 9 = 0.{4} 循環節= 1
5 / 9 = 0.{5} 循環節= 1
6 / 9 = 0.{6} 循環節= 1
7 / 9 = 0.{7} 循環節= 1
8 / 9 = 0.{8} 循環節= 1
k= 2
2 / 19 = 0.{105263157894736842} 循環節= 18
3 / 19 = 0.{157894736842105263} 循環節= 18
4 / 19 = 0.{210526315789473684} 循環節= 18
5 / 19 = 0.{263157894736842105} 循環節= 18
6 / 19 = 0.{315789473684210526} 循環節= 18
7 / 19 = 0.{368421052631578947} 循環節= 18
8 / 19 = 0.{421052631578947368} 循環節= 18
9 / 19 = 0.{473684210526315789} 循環節= 18
k= 3
3 / 29 = 0.{1034482758620689655172413793} 循環節= 28
4 / 29 = 0.{1379310344827586206896551724} 循環節= 28
5 / 29 = 0.{1724137931034482758620689655} 循環節= 28
6 / 29 = 0.{2068965517241379310344827586} 循環節= 28
7 / 29 = 0.{2413793103448275862068965517} 循環節= 28
8 / 29 = 0.{2758620689655172413793103448} 循環節= 28
9 / 29 = 0.{3103448275862068965517241379} 循環節= 28
k= 4
4 / 39 = 0.{102564} 循環節= 6
5 / 39 = 0.{128205} 循環節= 6
6 / 39 = 0.{153846} 循環節= 6
7 / 39 = 0.{179487} 循環節= 6
8 / 39 = 0.{205128} 循環節= 6
9 / 39 = 0.{230769} 循環節= 6
k= 5
5 / 49 = 0.{102040816326530612244897959183673469387755} 循環節= 42
6 / 49 = 0.{122448979591836734693877551020408163265306} 循環節= 42
7 / 49 = 0.{142857} 循環節= 6
8 / 49 = 0.{163265306122448979591836734693877551020408} 循環節= 42
9 / 49 = 0.{183673469387755102040816326530612244897959} 循環節= 42
k= 6
6 / 59 = 0.{1016949152542372881355932203389830508474576271186440677966} 循環節= 58
7 / 59 = 0.{1186440677966101694915254237288135593220338983050847457627} 循環節= 58
8 / 59 = 0.{1355932203389830508474576271186440677966101694915254237288} 循環節= 58
9 / 59 = 0.{1525423728813559322033898305084745762711864406779661016949} 循環節= 58
k= 7
7 / 69 = 0.{1014492753623188405797} 循環節= 22
8 / 69 = 0.{1159420289855072463768} 循環節= 22
9 / 69 = 0.{1304347826086956521739} 循環節= 22
k= 8
8 / 79 = 0.{1012658227848} 循環節= 13
9 / 79 = 0.{1139240506329} 循環節= 13
k= 9
9 / 89 = 0.{10112359550561797752808988764044943820224719} 循環節= 44
計算時間= 3.35
|
|