求一道C++编程题

Description:自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来。所谓“完数”是指一个数恰好等于它的所有不同因子之和。例如,6是完数,因为6=1... Description:
自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来。所谓“完数”是指一个数恰好等于它的所有不同因子之和。例如,6是完数,因为6=1+2+3。而24不是完数,因为24≠1+2+3+4+6+8+12=36。

Input:
输入数据中含有一些整数n(1<n<10000)。
Output:
对于每个整数n,输出所有不大于n的完数。每个整数n的输出由n引导,跟上冒号,然后是由空格开道的一个个完数,每个n的完数列表应占独立的一行。
Sample Input:
100
5000
Sample Output:
100: 6 28
5000: 6 28 496
展开
 我来答
wzydtc111
2011-05-10 · 超过40用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:96万
展开全部
#include<stdio.h>
#include<math.h>
int factor(int m)
{
int i,s=0;
int n;
int j,r;
n =m;
for(i=2;i<n; i++){
r = 0;
for(j=1;j<i;j++){
if(i%j == 0){
r = r + j;
}
}
if(r == i){
printf("the result is:%d\n",r);
s++;
}
}
return s;
}
void main()
{
int i,m,sum;
m = 10000;
sum = factor (m);
printf("the total is:%d\n",sum);
}
阿德721
2011-05-10
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
int n,j;
cout<<"Input:"<<endl;
cin>>n;
if(n<1||n>10000)
cout<<"Error!"<<endl;
else
{
cout<<"Output:"<<endl;
cout<<n<<":";
for(int i=2;i<n;i++)
{
int r = 0;
for(j=1;j<i;j++)
{
if(i%j == 0)
r = r + j;
}
if(j==r)
cout<<" "<<j;
}
}
cout<<"\n";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式