#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
void main()
{
int m,a,b;
cout<<"Satisfying numbers small than 1000 are:"<<endl; //输出完数
//寻找完数
for(m=1;m<=1000;m++)
{
int sum=1; //1为完数,不进循环,直接到下面执行if语句
for(a=2;a<=sqrt(m);a++)
{
if(m%a==0)
{
b=m/a;
sum=sum+a+b; //因子不能包括本身,因此除数最小是二,但是最后求和的时候要加上1,才满足完数的定义
}
}
//输出满足条件的完数和因子
if(sum==m)
{
cout<<setw(3)<<m<<endl;
cout<<"its factors are:"<<1;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载