子供さん向けの「Pythonプログラミング」で、「9桁数字難問」の回答を目指します。
- 9桁の数100,000,000から始めて1,000,000,000まで数を増やしながら、該当数字を探す方法です。それぞれの割り切れる条件を確認していきます。
- 多くの該当する数字があることが分かりました。
- 横軸は該当する数字で、縦軸は次の該当する数字までの大きさ(差分)です。
- 周期性があるようですが、数式に表現できて、該当数値を予測するまでは難しそうです。
☆計算該当数は例えば次の様で、該当数はかなり多そうです、始めだけですが、
Pythonのコードは次のような簡単なものです。
i=100000000
while i < 1000000000:
s=str(i)
a=float(s[:1])%1
#print(a)
b=float(s[:2])%2
#print(b)
c=float(s[:3])%3
#print(c)
d=float(s[:4])%4
#print(d)
e=float(s[:5])%5
#print(e)
f=float(s[:6])%6
#print(f)
g=float(s[:7])%7
#print(g)
h=float(s[:8])%8
#print(h)
j=float(s[:9])%9
#print(j)
k=a+b+c+d+e+f+g+h+j
#print(k)
i=i+1
if k*100==0:
print(i-1)
#else:
# print(k*100)
#のついたコードは、実行しません。(見て確認するため用)
「 h=float(s[:8])%8」 は、数字の左から8桁の数字(文字)を数字にして、
8で割ったあまりを計算(%)、これが該当数字なら「0」のはずです。
k=a+b+c+d+e+f+g+h+jで、それぞれの桁の数の、割り算あまりを合わせて(k)、
「k=0」なら、この数字は、問題の条件を満たしていると判断します。
コードを実行するには、PythonをPCにインストールすればよいですが、
次のURLサイトに入ると、コードをコピペするだけで、Python実行できます。
https://paiza.io/ja/ :Python実行サイトを探してください。
(確認はしておりません、インデント(スペースの開け方)調整が必要かもしれません)