问题 A: 因子个数
时间限制: 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<string.h> #include<stdio.h> #include<algorithm> #include<math.h> #include<queue> #include<stack> #define inf 0x3f3f3f #define M 10000 using namespace std; int main() { int t ; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); if(n==1) printf("1\n"); else if(n==2) printf("2\n"); else if(n==3) printf("2\n"); else { int num=2;int numm=0; int k=sqrt(n); // 枚举到这个就可以的 for(int i=2;i<=k;i++) { if(i*i==n) // 这种情况的在去除下就行了 { num++; continue; } else { if(n%i==0) numm++; } } printf("%d\n",numm*2+num); } } return 0; }