【ABC179 C】「A x B + C」を解く【Python3】

「AtCoder」解説一覧へ

与えられた正整数Nに対して、「A×B+C=N」を満たす正整数の組(A,B,C)がいくつあるか求める問題です。

提出
n = int(input())
ans = 0

for i in range(1, n):
    ans += (n-1) // i

print(ans)

入力はNのみです。

A×Bが定まれば、Cは自然に決まります。

Aを固定したときに、Bが何通りあるかは、「(N-1)/A」(切り捨て)で求めることができます。

例えば、入力例1の場合、Aは1か2になります。

(Aが3以上になると、B,Cが正整数ではなくなってしまいます。入力例に限らず、Aの範囲は「1≦A≦(N-1)」となります)

Aが1の時にはBは2通りあり、Aが2の時には1通りあります。

提出では、for文で、すべてのAに対するBの数を求め、「ans」に加えています。

ループが終わった後の「ans」がそのまま答えになります。

【ABC179】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です