◆広島県 清川 育男 さんからの解答。
プログラムを組んで求めてみました。
【問題1】
142857、142857142857、142857142857142857 .........
285714、285714285714、285714285714285714285714 .......
1 7 |
の位数 6 |
【問題2】
1014492753623188405797
10144927536231884057971014492753623188405797 .......
1159420289855072463768
11594202898550724637681159420289855072463768 .......
1304347826086956521739
13043478260869565217391304347826086956521739 .......
1 69 |
の位数 22 (69=3*23) |
無数に存在しますね。
REM 奇妙な倍数関係 REM 【問題1】 FOR A=1 TO 2 FOR N=1 TO 10 LET Y=A*(3*(10^(N-1))-1) IF MOD( Y , 7) =0 THEN LET X=Y/7 LET X1$=STR$(X) LET X2$=STR$(A) LET X3$=X2$&X1$ PRINT X3$ END IF NEXT N NEXT A PRINT REM 【問題2】 FOR A=1 TO 9 FOR N=1 TO 25 LET Y=A*(10^(N-1)-7) IF MOD( Y , 69) =0 THEN LET X=Y/69 LET X1$=STR$(X) LET X2$=STR$(A) LET X3$=X1$&X2$ LET X4=VAL(X3$) LET X5=X4*7 LET X6$=STR$(X5) LET L1=LEN(X3$) LET L2=LEN(X6$) IF L1=L2 THEN PRINT X3$ END IF END IF NEXT N NEXT A END
◆出題者のコメント。
解答ありがとうございます。
【問題1】,【問題2】ともみごと正解です。
示された [最小構成の数字の並び] を何回か繰り返してできる数のすべてが条件を満たします。
また、[最小構成の数字の並び] は示されているものがすべてで、それら以外にはありません。
何となく、「プログラムを組んで解いてくるのでは?」と予感してました。
でも、この問題はコンピューターを使わなくても解くことができます。
そこで、試験会場での解答のようにコンピューターは使わない解法を改めて求めます。
◆千葉県 なのはな子 さんからの解答。
『奇妙な倍数関係』……筆算で解く?!
問題の答えとしてこれでいいのかどうか自信はありませんが、とりあえずコンピューターがなくてもできる方法です。
筆算の過程をバラバラに書いていきます。
【感想】
なぜこうなるのかよくわからないのですが、何やらおもしろそうな形になりました。
最初にどの数を持ってくるかは、正解がわからない段階でなら勘を働かせる(当たることもある!)か
当てずっぽう(1割位の確率?)で………、
ダメですか?
◆出題者のコメント。
「なのはな子」さんへのコメントです。
解答ありがとうございます。
さすがに鋭い視点ですね。
そこまで気が付けばほとんど解けたようなものです。
ご指摘のように、特定の桁の数字さえ得れば後はイモづる式に次々と各桁の数字が得られます。
(かけ算でもわり算でもどちらでも可能です)
そこで最初の数字を得るためには、(当てずっぽうでなく)絞り込む必要があります。
絞り込みのヒントは、「清川育男 」さんが示されたプログラムにも隠されています。
2つの効率の良いアルゴリズム(処理手順)は筆算で得た方程式が元になっています。
その方程式において、整数の性質を巧みに適用すればおのずと絞り込まれます。
◆広島県 清川 育男 さんからの解答。
【問題1】
AはNの位の数。Xは(N-1)桁の数とする。
題意より、
(A*10N-1+X)*3=X*10+A
7*X=A*(3*10N-1-1)
これを満たすXが存在するためには、
A*(3*10N-1-1)≡0 (mod 7)
題意より、0<A<4
(A,7)=1 であるから、
3*10N-1≡1 (mod 7)
(3,7)=1 であるから、
10N-1≡1 (mod 7)
これを満たす最小のものは、フェルマーの定理より、
(10,7)=1 であるから、
106≡1 (mod 7)
106-1 7 |
=142857 |
142857*2=285714
(142857*3)3=1285713 これは不適。
【問題2】
Xは(N-1)桁の数、Aは1の位の数とする。
題意より、
(10X+A)*7=A*10N-1+X
69X=A*(10N-1-7)......(1)
(1)式を満たすXが存在するためには、
A*(10N-1-7)≡0 (mod 69)
でなければならない。
A*(10N-1-7)=A*(10N-1-1)-6A≡0 (mod 3)
であるから、
A*(10N-1-7)≡0 (mod 23)
であればよい。
(A,23)=1 であるから、
10N-1-7≡0 (mod 23)......(2)
あればよい。
また題意より、
6<A<10.......................(3)
でなければならない。
したがって、まず (2)式を満たす最小のNを求めればよい。
フェルマーの定理より、
(10,23)=1 であるから、
1022-1≡0 (mod 23)
1022-1≡69 (mod 23)
1022-70≡0 (mod 23)
1021≡7 (mod 23)
N=22
1021-7≡0 (mod 23)
X=A* | 1021-7 69 |
=A*14492753623188405797 |
求める元の数は、
7*(14492753623188405797)*1O+7=1014492753623188405797 8*(14492753623188405797)*1O+8=1159420289855072463768 9*(14492753623188405797)*1O+9=1304347826086956521739これらは題意を満たす。
◆沖縄県 jpgr さんからの解答。
【問題1】
142857を1個以上つないで作った数(142857、142857142857、...)
及び285714を1個以上つないで作った数(285714、285714285714、...)である。
求める数をNとおき、その桁数をn、n桁目の(先頭の)数をa (1≦a≦9)とおく。
(例:N = 12345のとき、n = 5、a = 1)。
題意から、
3N=10(N-10n-1a)+a、
7N=(10n-1)a、
N = | 1 7 |
(99...9) a (ただし(99...9)は9がn個並んだ数)。 |
aが7で割り切れるなら、
つまりa = 7ならば、N = (99...9)となって、a = 7と矛盾する。
よってa ≠ 7であり、(99...9)は7で割り切れる。
(99...9)が7で割り切れるのは、9を6の倍数個だけつないでできた数のときであり、このとき
N = (142857...) aとなる。
(ここで(142857...)は142857を任意の個数だけ付け足してできた数)。
aはNの先頭の桁の数字だったから、これを考慮すると、
a = 1(N = 142857...)
a = 2(N = 285714...)
のみがaとNとの関係を満足する。
逆にN = 142857...、285714...のとき、
3N = 428571...、857142...となり、先頭の桁が末尾に移っており題意を満たす。
したがって求める数は、
142857を1個以上つないで作った数(142857、142857142857、...)
及び285714を1個以上つないで作った数(285714、285714285714、...)である。
【問題2】
求める数をN、その桁数をn、末尾の数をb(1≦b≦9)とおく。
題意から、
7N
= 10n-1 b + | 1 10 |
(N - b) |
= | N 10 |
+b | ( | 10n-1- | 1 10 |
) |
69N = b (10n- 1)、ここで10n- 1は3で割り切れるから、
23N = b (33...3)。ここで(33...3)は3をn個つないでできた数。
bは23では割り切れない。
したがって、33...3が23で割り切れる。
33...3が23で割り切れるのは、n = 22の倍数のときである。
つまり、
N = (0144927536231884057971...)bである。---(1)
ここで0144927536231884057971...は
0144927536231884057971を1個以上つないでできた数である。
また、先頭に0がついているのは、nは22の倍数であるが、
144927536231884057971は21桁であるためである。
bはNの末尾の数であるが、
144927536231884057971の末尾が1であるので、bは1から9までの全ての数を取り得る。
(場合1)
(1)で求めた数で、先頭の0を桁として認めた場合
この場合は、1≦b≦9の全てについて題意を満たす。
(場合2)
先頭の0を認めない場合
この場合は、7≦b≦9についてのみ題意を満たす。
(例)N = 0434782608695652173913
( = 0144927536231884057971 * 3)の場合、
場合1なら 7N = 3043478260869565217391となり(先頭から2つ目の0に注目)、
これは題意を満たすが、
場合2なら 末尾の数字を先頭に持ってくると
343478260869565217391となり、これは題意を満たさない。
以上より、求める数は
(先頭に1個だけ0がつくのを認めれば)
1≦b≦9であるbに対して、(0144927536231884057971...)b
(先頭の0を認めなければ)
7≦b≦9であるbに対して、(0144927536231884057971...)bである。
ただし、(0144927536231884057971...)は
0144927536231884057971を1個以上つないでできた数である。
◆出題者のコメント。
「清川育男」さん「jpgr」さん、お二人とも正解です。
無駄のない極めて論理的な解法だと思います。
別解として、こんな解法もあります。
「なのはな子」さんもお気付きになった「イモづる式」解法です。
例として、先頭の0を認めない場合の【問題2】を示します。
題意によるディオファントスの方程式より、求める数の桁数22nは得たものとします。
(ただし、nは1以上の整数です)
ここまでは、お二人の解法と一緒です。
以下、最小桁数(n=1)の解を求める「イモづる式」解法です。
元の数の先頭の数字は1でなければなりません。
何故なら1以外の数なら元の数を7倍すれば桁数が増えてしまい題意を満たしません。
また、元の数の末尾の数字は7倍数では先頭になりますから、元の数の先頭の数字が1なら末尾の数字は7か8か9の筈です。
そこで、元の数の末尾の数字から始まる22桁の7倍数を考えます。
当然、この7倍数の先頭以外の21個の数字は不明です。
ところが、元の数の末尾の数字だけは7倍数では先頭になりますが、他の各数字は7倍数では1つずつ右にズレている筈です。
ですから、次の「わり算」の計算で元の数は得られます。
まず、末尾の数字を被除数とし7で割ります。
「わり算」の度に得た1桁の商を被除数の後ろに付け足して、次々と7で割っていきます。
商の数字の並びに末尾の数字が現れその時の余りが0になるまで、この計算を繰り返します。
ただし、商が22桁になっても条件を満たさなければ、その末尾の数字は解ではありません。
条件を満たすことができれば、その時の商は少なくとも求める数の1つとなる筈です。
上に示した3つの「わり算」はいずれも条件を満たします。
ですから、これらの3つの商すべてが求める数になります。
(当然のことですが、上のいずれの商も22桁になります)