新手上路,求大佬解答
输入一个小于等于99999999999999的正整数n,输出它的约数的个数。我这个代码哪里错了,怎么不是wa就是超时。
#include<stdio.h>
#include<math.h>
int main()
{
long n,i,cnt=0,l;
scanf("%lld",&n);
l=sqrt(n);
for(i=1;i<=l;i++)
{
if(n%i==0) cnt++;
}
if(l*l==n)
{
printf("%lld",2*cnt-1);
}
else
{
printf("%lld",2*cnt);
}
return 0;
}