编程求不超过1000的所有的完全数。

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:05:21
要求得到像下面的程序结果。
1是一个完全数。
1=1
6是一个完全数。
6=1+2+3
28是一个完全数
28=1+2+4+7+14
496是一个完全数
496=1+2+4+8+16+31+62+124+248

#include<iostream>
using namespace std;
int main ()
{int i,x,y,sum=0;
for(i=2;i<=1000;i++)
{ sum=0;
for(x=1;x<i;x++)
{if(i%x==0) sum=sum+x;}

if(i==sum)
{cout<<i<<"是一个完全数 "<<endl;
cout<<i<<"=1";
for(y=2;y<i;y++)
{
if(i%y==0) cout<<"+"<<y;}
cout<<endl;}
}
return 0;
}
程序运行结果:
1是一个完全数。
1=1
6是一个完全数。
6=1+2+3
28是一个完全数
28=1+2+4+7+14
496是一个完全数
496=1+2+4+8+16+31+62+124+248

writeln('1');
for i:=2 to 1000 do
begin
sum:=0;
for j:=1 to i div 2 do
if i mod j=0 then
inc(sum,j);
if sum=i then
writeln(i);
end;