题解 | #约数的个数#
约数的个数
https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6
#include <stdio.h> #include <math.h> int count_divisors(int num) { int count = 0; int sqrt_num = (int)sqrt(num); for (int i = 1; i <= sqrt_num; i++) { if (num % i == 0) { // 如果i是因子,那么num/i也是因子 count += 2; // 如果i*i等于num,说明num是一个完全平方数,避免重复计数 if (i * i == num) { count--; } } } return count; } int main() { int N; scanf("%d", &N); // 读取整数数量 while (N--) { int num; scanf("%d", &num); // 读取每个整数 printf("%d\n", count_divisors(num)); // 输出约数个数 } return 0; }