考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC106-B - 105 を解く

ABC106-B - 105

 

1 以上 N 以下の奇数のうち、正の約数をちょうど 8 個もつ数を求める問題

 

N は 1 以上 200 以下という緩い制約であるため

N 以下の奇数一つ一つについて

約数が 8 個あるかどうかを確認していきたいと思う

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
N=int(input())

# 集計用変数
ans=0

for i in range(1,N+1):
  # 約数の個数
  c=0

  # 奇数の場合のみ見る
  if i%2==1:
    for j in range(1,i+1):
      # 割り切れたら約数
      if i%j==0:
        c+=1

    # ちょうど8個の場合はカウント
    if c==8:
      ans+=1

# 出力
print(ans)

  

提出結果はACでした