问题描述
如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。(注意1不是完数。)
本题需要编写一个函数来判断一个数是不是完数,最终提交的代码是函数体内的代码,不要提交函数体之外的其他代码。
总代码:
#include <iostream>
using namespace std;
int isPerfect(int n) {
int cnt=0;
for(int q=1;q<n;q++){
if(n%q==0) cnt+=q;
}
if(cnt==n) return 1;
else return 0;
}
int main()
{
int n = 1000;
int sum = 0;
for(int i = 1;i < n;i ++) {
if(isPerfect(i)) cout << i << endl;
}
return 0;
}
提交代码:
int cnt=0;
for(int q=1;q<n;q++){
if(n%q==0) cnt+=q;
}
if(cnt==n) return 1;
else return 0;