カテゴリー
数学 数学の問題をプログラムで解く

数学の問題をプログラムで

500以下の自然数のうち、正の約数が15個である数の個数と求めよ。

for i in range(1,501):
 k=0
 for j in range(1,i+1):
  if i % j ==0:
   k=k+1
 if k==15:
   print(i)
——————————
144
324
400

答えは3個です。プログラムを使えばこんなに簡単に解けます。
しかしきっと数学の先生は怒るから真面目に解きましょう。
積が15になる自然数の組み合わせは1×15と3×5です。
よって約数が15個である数を素因数分解すると
p1-1q15-1=q14またはp3-1q5-1=p2q4の形です。
ただしp,qは素数でp≠q
q14≦500 またはp2q4≦500となるp,qを求めましょう。
q14≦500となるqはありません。

prime=[2,3,5,7,11]
 for p in prime:
  for q in prime:
   if p**2*q**4<=500 and p!=q:
   print(p,q,p**2*q**4)
——————————————
2 3 324
3 2 144
5 2 400


カテゴリー
数学

数学の問題

高校生の問題集にこんな問題がありました。
1から100までの100個の自然数の積
 N=1・2・3・………・100 を計算すると、末尾には0が連続して何個並ぶか。

スマホの電卓でも100!は簡単に求められる。
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000000 
答えは24個です。つまらない問題!

しかしスマホで答えたのでは数学としての問題の意味がないので真面目に解答しましょう。
5が約数の数字と2が約数の数字をかけると末尾に0が付きます。2が約数の数字は50個もあるので5が約数の数だけ0が付くと考えます。100÷5=20なので0は末尾に20個連続します。これが正解かと思うとそうではありません。約数5が2個の数字もあるからです。つまり約数に25がある数字はさらに0の数が増えます。100÷25=4なので0の数は20+4=24個連続することになります。
約数5が3個ある数字も考えましょう。これは5=125になり100を超えてしまうのでありません。
以上のことから答えは24個になります。

inserted by FC2 system