| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 516 人关注过本帖
标题:一个完数的题,谁能写一个代码,并注释一下,谢谢啦
只看楼主 加入收藏
满天星光
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-12-11
结帖率:0
  已结贴   问题点数:20  回复次数:1   
一个完数的题,谁能写一个代码,并注释一下,谢谢啦
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
intput:N
output:
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
搜索更多相关主题的帖子: factors  
2016-12-12 08:49
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
  得分:20 
C论坛闲得无聊,第一次光临(可以说是第二次了)图形专区~无聊看看有什么可以回的~

题目的N没有说明是什么东西,可能是求单个数N,也可能是小于等于N的所有数,我只是把其中一个数作为比较~

解释写不了太多,先凑合来看~

程序代码:
#include<stdio.h>
int fun(int n,int a[])//n为所求数据
{
    int i=2,k=1,j=1;//i从2开始//k为求和//j为记录数组下标

    if (n==1)//考虑特殊情况
        return 0;

    for (;i<=n/2;i++)//比较到n/2就行了~
        if (n%i==0)
        {
            k+=i;//求和
            a[j++]=i;// 保存数据
        }
   
    return k;
}
int main()
{
    int n,a[1000]={0};//保存完数的数组
    a[0]=1;

    scanf("%d",&n);//输入数据

    if (n==fun(n,a))//
    {
        printf("Yes,its factors are:\n");
        for (n=0;a[n];++n)
            printf("%d ",a[n]);
    }
    else
        printf("No");

    printf("\n");

    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-18 04:44







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

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