任给一个自然数 n,求出这个自然数不同因数的个数。c++
时间: 2024-10-28 21:07:08 浏览: 10
输入一个自然数n,求 ,同时统计结果中有多少个0。
在C++中,计算一个自然数n的不同因数个数通常需要先找出所有因数,然后统计数量。一种常见的做法是使用一个循环,从1开始遍历到n,看每个数是否能整除n,如果可以,就增加计数器,并更新n(因为已经找到了一个因数,所以接下来只用考虑n除以当前因数的余数)。当n变成1时,循环结束,此时计数器就是不同因数的数量。
下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
int countFactors(int n) {
int count = 0;
for (int i = 1; i <= sqrt(n); ++i) { // 只需检查到√n,因为大于√n的因子会有一对重复
if (n % i == 0) {
if (n / i == i) { // 如果n除以i等于i,说明这是个平方根,不需要额外加一次
count++;
} else { // 否则是两个因数,分别加一
count += 2;
}
}
}
return count - 1; // 减去1是因为我们把1也算作一个因数两次了,实际上只需要算一次
}
int main() {
int num;
cout << "Enter a natural number: ";
cin >> num;
cout << "Number of different factors: " << countFactors(num) << endl;
return 0;
}
```
阅读全文