POJ 2140(数学问题)

问n=a+a+1+a+2+…+a+k 的情况总数

n=(k+1)a+(k+1)k/2

 =(k+1)(a+k/2)

n为整数,k+1为整数,(a+k/2)为整数,k为偶数,k+1为奇数

当n和k+1确定时,a为定值

故解为n的奇因子个数

Program P2140;
var
   i,n,ans:longint;
begin
   ans:=0;
   read(n);
   i:=1;
   while (i<=n) do
   begin
      if (n mod i=0) then inc(ans);
      inc(i,2);
   end;
   writeln(ans);
end.