约数的个数
输入 n个整数,依次输出每个数的约数的个数。
输入格式
第一行包含整数 n。
第二行包含 n个整数 ai。
输出格式
共 n行,按顺序每行输出一个给定整数的约数的个数。
数据范围
1≤n≤1000,
1≤ai≤109
要点:在计算约数个数 如果i与a/i不相等约数个数加2,相等约数个数加1,i的取值范围1到sqrt(a)注意有等号
#include <bits/stdc++.h>
using namespace std;
int count(int a){
int count=0;
for(int i=1;i<=sqrt(a);++i){
if(a%i==0 && (a/i)!=i ){
count=count+2;
}else if(a%i==0&&a/i==i) {
count++;
}
}
return count;
}
int main(){
int n;
scanf("%d",&n);
int a;
for(int i=0;i<n;++i){
scanf("%d",&a);
printf("%d\n",count(a));
}
}