c++实现:一个数是奇妙数,当且仅当所有小于它的约数加起来比它大,例如12除本身外的约数有1,2,3,4,6,它们的和为16,因此12是奇妙数。给定整数N,求不超过N的奇妙数有多少个。
代码实现如下,望采纳
#include <iostream>
int main() {
int n;
std::cin >> n;
int cnt = 0; // 用于记录奇妙数的数量
for (int i = 1; i <= n; i++) {
int sum = 0; // 用于记录约数的和
for (int j = 1; j < i; j++) {
// 如果j是i的约数,则将j加到sum中
if (i % j == 0) {
sum += j;
}
}
// 如果sum等于i,则i是奇妙数
if (sum == i) {
cnt++;
}
}
std::cout << cnt << std::endl;
return 0;
}