题目描述
输入n个整数,依次输出每个数的约数的个数
#include<stdio.h>
#include<math.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
int count=0;
int num;
scanf("%d",&num);
int i=1;
for(;i<sqrt(num);i++)//对于输入整数的每个约数,总对应另一个约数使得:a*b=num,且两数分布在sqrt(num)两侧
if(num%i==0)
count+=2;
if(num==(int)sqrt(num)*(int)sqrt(num))
count++;
printf("%d\n",count);
}
}
}
//对于输入整数的每个约数,总对应另一个约数使得:ab=num,且两数分布在sqrt(num)两侧*
https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6?tpId=60&&tqId=29475&rp=1&ru=/activity/oj&qru=/ta/tsing-kaoyan/question-ranking