YURU_DB

OracleDB / AOJ(python)

ITP1_3_D: How Many Divisors? (python)

問題

約数の数

3つの整数 a、b、c を読み込み、a から b までの整数の中に、
c の約数がいくつあるかを求めるプログラムを作成してください。

Input

a、b、c が1つの空白区切りで1行に与えられます。

Output

約数の数を1行に出力してください。

Constraints

・1≤a,b,c≤100001≤a,b,c≤10000
・a≤b

回答

a,b,c = map(int,raw_input().split())
cnt = 0

for d in range(a,b+1):
    if c%d==0: cnt+=1
print(cnt)

説明

a,b,c: リストにint型に変換しつつ値を格納。
cnt: 約数カウント用の変数を初期化

d: cを割る値(a〜bの値を入れる)
range(a,b+1): a〜bの値までをリストで返す
        ※range関数ではbと指定すると、a〜(b-1)
         までの値を返すので、b+1としている。
if文: ループ時のdでcが割り切れるなら、約数と判断してcntに+1する。
print: cの約数の数であるcntを表示。

雑感

約数の定義ってなんだっけ、から始まりました、、、
数学勉強し直す意味でもAOJやってて楽しいです。