编程序打印出2-1000之间的所有完整数

kuteng1201 2009-10-04 09:28:57
编程序打印出2-1000之间的所有完整数。所谓完整数,是指这样的数,该数的各因子之和正好等于该数本身,例如:6=1+2+3;28=1+2+4+7+14;所以,6、28都是完数。
...全文
407 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liushuiyou_sheng 2009-10-06
  • 打赏
  • 举报
回复
#include<iostream.h>
void main ()
{
static int k[20];
int i,j,n,s;
for (j=2;j<=1000;j++)
{
n=0;
s=j;
for (i=1;i<j;i++)
{
if ((j%i)==0)
{
n++;
s=s-i;
k[n]=i;
}
}
if (s==0)
{
cout<<j<<" 是一个完全数,它的因子是: ";
for (i=1;i<=n;i++)
cout<<k[i]<<" ";
cout<<endl;
}
}
}
ibigcake 2009-10-05
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int sum=0;
int main()
{
for(int i=2;i<=1000;i++)
{
sum=0;
for(int j=1;j<i;j++)
{
if(i%j==0)
sum=sum+j;
else
continue;
}
if(sum==i)
cout<<sum<<endl;
}
return 0;
}
ailinty 2009-10-05
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
//2-2000的完数
void getNiceNumber()
{
for(int i = 2; i <= 1000; i++)
{
long sum = 0;
for(int j = 1; j <i; j++)
{
if(i%j == 0)
{
sum += j;
}
}
if(sum == i)
{
cout << i << "是完数" << endl;
}

}
}
int main(int argc, char *argv[])
{
getNiceNumber();
system("PAUSE");
return 0;
}
虽然简单我还是看哈,学习嘛
rivulettornado 2009-10-05
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int cal( int num );

int main( )
{
for( int i = 2;i <= 1000;i++ )
{
if( i == cal(i))
{
cout<<i<<endl;
}
}
}
int cal( int num )
{
int sum = 0;
for( int i = 1;i<num;i++ )
{
if( num % i == 0)
{
sum += i;
}
}
return sum;
}

senr0816 2009-10-04
  • 打赏
  • 举报
回复
鄙视!
zentropy 2009-10-04
  • 打赏
  • 举报
回复
……
又是家庭作业

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧