给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 (num 的数位中不含 0)简单的C语言
时间: 2024-11-22 12:38:41 浏览: 5
这是一个经典的求解数字因子个数的问题,你可以通过遍历每个数字并检查它是否是num的因数来解决。以下是简单的C语言函数实现:
```c
#include <stdio.h>
int countDivisors(int num) {
int count = 0;
for (int i = 1; i * i <= num; i++) { // 只需要检查到sqrt(num),因为大于sqrt(num)的因子会有一个对应小于sqrt(num)的因子成对出现
if (num % i == 0) {
// 如果i是因子,则另一个因子可能是num/i(如果num/i大于i),或者就是i本身
if (i != num / i) { // 避免重复计数
count += 2; // 加上i和num/i两个因子
} else {
count += 1; // 如果i等于num/i,只加一次
}
}
}
return count - 1; // 减去1是因为1总是作为因子,所以最后减去1避免重复计数1
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int result = countDivisors(num);
printf("能整除给定数位的数目是:%d\n", result);
return 0;
}
```
阅读全文