根据因数成对出现的性质进行优化
#include <iostream>
using namespace std;
int cnt(int n)
{
int cnt=0;
for(int i=1; i*i<=n; i++)
{
if(n%i==0)
{
if(i*i==n) //相等 因数个数只用加一次
{
cnt++;
}
else
{
cnt+=2; //有一个小于i的因数和大于i的因数
}
}
}
return cnt;
}
int main()
{
int n1;
while(cin>>n1&&n1)
{
cout<<cnt(n1)<<endl;
}
}