1303: 因子个数 [数学]
时间限制: 1 Sec 内存限制: 128 MB提交: 254 解决: 63 统计
题目描述
给定一个数n,求n的因子数。
n的因子:所有的m满足n % m == 0。
输入
第一行输入一个整数t,代表有t组测试数据(t <= 100)
接下来有t行,每行有一个整数n。
保证1 <= n <= 100000000。
输出
输出一个结果代表因子个数。
样例输入
4
1
2
3
4
样例输出
1
2
2
3
来源
#include<stdio.h>
#include<math.h>
int main()
{
int t;
long int n,i,k,num=0;
scanf("%d",&t);
while(t--)
{
scanf("%ld",&n);
k=sqrt(n);
for(i=1;i<=k;i++)
{
if(n%i==0)
{
num++;
}
}
if(k*k==n)
{
printf("%ld\n",2*num-1);//此时两个因子相同都为k
}
else
{
printf("%ld\n",2*num);
}
num=0;
}
return 0;
}