2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【python】2010年小樽商科大の整数問題をプログラミングしてみた。

Posted at

はじめに

小樽商科大学の入試問題にプログラミング題材にふさわしい問題があったので、pythonでプログラミングしました。

問題

2010!は2で何回割り切れるか。
出典 2010年小樽商科大学

プログラミングしたコード

# 小樽商科大2010年の入試問題
# 2010!は2で何回割り切れるか

# 2で割り切れるだけ割り切り、割り切った回数を返す関数
def two_div(num):
  two_div_count = 0
  while num % 2 == 0:
    two_div_count += 1
    num /= 2
  return two_div_count

# メイン関数
def main():
  # 階乗を表す変数
  N = 2010
  # 解答を表す変数
  two_div_ans = 0
  for i in range(1,N+1):
    ans += two_div(i)
  print(two_div_ans)

if __name__ == "__main__":
  main()
    

実行結果

実行結果はこんな感じ

ans.jpg

アルゴリズム

①自然数を2で割り切れるか変数に入れる
②2で割り切れるか変数に格納した自然数を2で割り切れなくなるまで繰り返し2で割る
③②の処理の結果回数を足す
④自然数を1足して①に戻る。2010まで繰り返す。
⑤2010まで調査したら、2で割り切れる回数を標準出力に出力

最後に

機会があったら何かの題材で挑戦しようと思います。

2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?