【C++】已通过
关键:开根号,降低复杂度
#include<math.h>
using namespace std;
#define MAXN 1000;
#define MAXNum 1000000000;
//求约数的个数
int f(int num) {
int index = 0;
int n = sqrt(num);
for (int i = 1; i <= n; i++) {
if (num%i == 0) {//是约数
if (i < n) {
index += 2;
}
else if (i == n && n*n == num) {
index++;
}
else {
index += 2;
}
}
}
return index;
}
int main() {
int N; cin >> N;
for (int i = 0; i < N; i++) {
int num; cin >> num;
cout << f(num) << endl;
}
return 0;
}