题解 | #约数的个数#
约数的个数
https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n) { // 注意 while 处理多个 case
int *a=(int*)malloc(sizeof(int)*n);
int b;
for (int i=0; i<n;i++) {
cin>>b;
a[i]=b;
}
for (int i=0; i<n;i++) {
int sum=1;
int k=a[i];
int j=2;
if(a[i]==1) cout << 1 << endl;
else {
for(;j*j<=k;j=j+2){
int z=1;
while (k%j==0 && j!=1){
k=k/j;
z++;
}
sum=sum*z;
if(j==2)
j--;
}
if(j<k)
sum=sum*2;
cout << sum << endl;
}}
return 0;
}
}
// 64 位输出请用 printf("%lld")
查看5道真题和解析
三奇智元机器人科技有限公司公司福利 132人发布