题解:慢慢枚举满足即可。因为x≥y,所以y≤2*k,且y≥k,所以循环范围就是k+1 to 2*k。不过直接用1/i和1/k,会出问题(计算机中没分数),所以就变成k/i*k和i/i*k。再者,1/x=1/k-1/y。所以1/x=i/i*k - k/i*k=i-k/i*k ,所以只要i-k/i*k满足i*k mod (i-k)=0就能简化为1/x
var
k,x,y,i,ans:longint;
begin
readln(k);
for i:=k+1 to 2*k do
begin
x:=i-k;
y:=k*i;
if y mod x=0 then inc(ans);
end;
writeln(ans);
end.