题目:完全数计算
完全数(Perfect number)又称完美数或完备数,是一些特殊的自然数。他所有的真因子(即除了自身以外的约数)之和恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28.
给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围0
#include<iostream>
using namespace std;
int count(int n)
{
int add=0;
int sum=0;
if(n<=0)
return -1;
for(int i=1;i<n;i++)
if(n%i==0)
add+=i;
if(add==n)
return 1;
else
return 0;
}
int count2(int n)
{
int add;
int sum=0;
if(n<=0)
return -1;
for(int j=1;j<=n;j++)
{
add=0;
for(int i=1;i<j;i++)
if(j%i==0)
add+=i;
if(add==j)
sum++;
}
return sum;
}
int main()
{
int num;
cin>>num;
int sum=0;
for(int i=1;i<=num;i++)
sum+=count(i);
cout<<sum<<endl;
cout<<count2(num)<<endl;
}