标题:题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2 ...
只看楼主
hhllf
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-11-20
结帖率:0
已结贴  问题点数:20 回复次数:6 
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
求这题的多种解法,感谢大佬!!
搜索更多相关主题的帖子: 个数 等于 之和 完数 编程 
2018-11-20 19:15
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:10 
你写出一种,发出来,再求多种

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-20 19:17
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:10 
STFW

saber,别哭.
2018-11-20 19:21
hhllf
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-11-20
得分:0 
#include "stdio.h"
#include "conio.h"
main()
{
  static int k[10];
  int i,j,n,s;
  for(j=2;j<1000;j++)
  {
    n=-1;
    s=j;
    for(i=1;i<j;i++)
    {
      if((j%i)==0)
      {
        n++;
        s=s-i;
        k[n]=i;
      }
    }
    if(s==0)
    {
      printf("%d is a wanshu",j);
      for(i=0;i<n;i++)
      printf("%d,",k);
      printf("%d\n",k[n]);
    }
  }
  getch();
}



除了这种解法,请问还有哪些解法?????
2018-11-20 19:25
hhllf
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-11-20
得分:0 
#include
int is_perfect_number(int n)
{
    int i,s=0;
    for(i = 1; i <=n/2; i ++)
        if(n%i == 0) s+= i;//统计所有真因子的和。
    if(s == n) return 1;//如果与原值相等,则该数为完数。

    return 0;//不是完数。
}

int main()
{
    int n;
    for(n = 1; n < 1000; n++)
        if(is_perfect_number(n)) printf("%d,",n);
}
2018-11-20 19:40
hhllf
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-11-20
得分:0 
回复 2楼 Tomorrw_I
大佬,求第三种解法
2018-11-21 12:22
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:0 
https://www.

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-21 12:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491418-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.158370 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved