输出1000以内的所有的完数

用C语言编写程序... 用C语言编写程序 展开
 我来答
百度网友e366253
2019-06-27
知道答主
回答量:10
采纳率:0%
帮助的人:6076
展开全部

/*输出1000以内的所有完数并输出其因子*/

#include<stdio.h>

int main(){

int sum = 0;

for (int i = 1; i <= 1000; i++){

sum = 0;

for (int j = 1; j < i; j++){

if (i%j == 0){

sum = sum + j;

}

}

if (sum == i){

printf("%d\n", i);

for (int j = 1; j < i; j++){

if (i%j == 0)

printf("因子:%d", j);

}

printf("\n");

}

}

return 0;

}

百度网友a39fb3e
推荐于2017-09-08 · TA获得超过4466个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:68.1万
展开全部

完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

输出1000以内的所有完数的代码如下:

  1. Pascal语言实现如下:

    var

      i,j,k:integer;

    begin

      for i:=1 to 1000 do

      begin

        k:=0;

        for j:=1 to i-1 do

          if i mod j=0 then inc(k,j);

        if k=i then writeln(i);

      end;

    end.

  2. C语言实现如下:

    #include<stdio.h>
    void main()
    {
    int i,j,k;
    for(i=1;i<=1000;i++)
    {
    k=0;
    for(j=1;j<=i-1;j++)
    if(i%j==0) k+=j;
    if(k==i) printf("%d\n",i);
    }
    }


输出结果皆为

6

28

496

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coldrain1981
推荐于2018-05-24 · TA获得超过480个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:119万
展开全部
完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)
求1000以内的完数的C语言代码如下:
#include <stdio.h>
int main()
{
int n=1000;
int r,j,i;
for(i=1;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);
}
}
return 0;
}
输出结果为: 6,28,496,
即1000以内的完数只有6、28、496三个数字。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
娃度沙听福0k
推荐于2018-03-24 · TA获得超过1508个赞
知道小有建树答主
回答量:336
采纳率:85%
帮助的人:134万
展开全部
public class Test {
/**
 * 求1000以内的所有完数
 * 完数:一个数如果恰好等于它因子之和
 */
public static void main(String[] args) 
{
// TODO Auto-generated method stub
int sum;
for(int i=1;i<=1000;i++)
{
sum=0;
for(int j=1;j<=i-1;j++)
{
if(i%j==0)
{
sum+=j;
if(sum==i)
System.out.print(i+";");
}
}
}
}
}

结果:6;24;28;496

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可破解66
2019-03-05 · TA获得超过108个赞
知道答主
回答量:28
采纳率:0%
帮助的人:1.1万
展开全部
#include<stdio.h>
int main()
{
int i,j,sum;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum=sum+j;
if(i==sum)
{
printf("%d its factors are ",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%d,",j);
printf("\n");
}
}
return 0;
}
结果如下:
6 its factors are 1,2,3,
28 its factors are 1,2,4,7,14,
496 its factors are 1,2,4,8,16,31,62,124,248,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式