每日一题3.21
完全数计算
解题思路: 用for循环遍历从1到n的每个数字,再用一个函数判断这个数字是否为完全数,从1到i遍历约数,用sum+=,如果sum最后==n则count++,不是则返回
代码实现:
#include <iostream>
#include <vector>
using namespace std;
int count(int n)
{
int sum = 0;
for (int i = 1; i < n; i++)
{
if (n%i == 0)
sum += i;
}
if (sum == n)
{
return 1;
}
else
return 0;
}
int main()
{
long n;
while (cin >> n)
{
int sum = 0;
for (int i = 1; i < n; i++)
{
sum += count(i);
}
cout << sum << endl;
}
return 0;
}
参考答案: