与えられた正整数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」がそのまま答えになります。