问题 M: 因子个数

来源:互联网 发布:阿里云控制台 编辑:程序博客网 时间:2024/06/09 23:41

问题 M: 因子个数
时间限制: 1 Sec 内存限制: 128 MB

题目描述
给定一个数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);        }        else        {            printf("%ld\n",2*num);        }        num=0;    }    return 0;}
0 0