一个数如果恰好等于它的因子之和,这个数就称为 完数 ,例如:6的因子为1,2,3,而6=1+2+3,因此6是完数。编程找出1000以内的所有完数,并按以下格式输出
6,its factors are 1,2,3
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int sum=0, n,f;
for(n=2;n<=1000;n++) //第一个for循环挨个输入1~1000的数
{
for (f = n / 2; f >= 1; f--) //第二个循环用来找符合题意的完数
{
if (n % f == 0)
sum = sum + f;
}
if (sum == n)
{
cout << n << ",its factors are ";
for (f = 1; f <= n/2; f++) //第三个循环用来输出完数的因数
{
if (n % f == 0)
cout << f << ',';
}
cout << endl;
}
sum = 0;
}
return 0;
}
![](https://img-blog.csdnimg.cn/img_convert/46fd05bceb0f44368bd9ca98d863acfa.png)