-
题目描述:
-
输入n个整数,依次输出每个数的约数的个数
-
输入:
-
输入的第一行为N,即数组的个数(N<=1000)
接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)
当N=0时输入结束。
-
输出:
-
可能有多组输入数据,对于每组输入数据,
输出N行,其中每一行对应上面的一个数的约数的个数。
-
样例输入:
-
5 1 3 4 6 12
-
样例输出:
-
1 2 3 4 6
-
来源:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
long int a[1001];
int n;
while(cin>>n)
{
if(n==0)
{
break;
}
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int j=1;j<=n;j++)
{
int ans=0,tmp=0;
double m=a[j];
for(int k=1;k<=sqrt(m);k++)
{
if(a[j]%k==0)
{
ans=ans+2;;
}
}
tmp=sqrt(m);
if(tmp*tmp==m)
--ans;
cout<<ans<<endl;
}
}
}