Android Morecoin 学生排队 windows servlets canvas upload cuda Skeljs vue架构 bootstrap后台管理系统模板 找公司做网站 外卖系统源码 input取消边框 pcie高速固态硬盘 idea开发python python开发工具 java环境配置 java运算 java结构 java地址 linuxcat命令 linux用户 方正流行体 sql行转列 考试练习系统 免费脚本 美国地址生成器 手机知识 js分页 win10环境变量 ppt格式刷怎么用 头条视频解析 透视网格工具怎么取消 foobar2000插件 鬼灵战马 losecontrol php验证码 图片文字提取软件 进存销软件
当前位置: 首页 > 学习教程  > 编程语言

习题6-3 使用函数输出指定范围内的完数 (20分)(稍复杂)

2020/8/11 19:15:49 文章标签:

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。

函数接口定义:

int factorsum( int number );
void PrintPN( int m, int n );

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[mn]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。

裁判测试程序样例:

#include <stdio.h>

int factorsum( int number );
void PrintPN( int m, int n );
	
int main()
{
    int i, m, n;

    scanf("%d %d", &m, &n);
    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
    PrintPN(m, n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

1 30

输出样例1:

1 is a perfect number
1 = 1
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

输入样例2:

7 25

输出样例2:

No perfect number

参考答案:

//其中函数factorsum须返回int number的因子和;
int factorsum( int number )
{
    int i, sum = 1;
    for(i = 2; i < number; i++)
    {
        if(number % i == 0)
        {sum += i;}
    }
    return sum;
}
//函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,
//每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。
//如果给定区间内没有完数,则输出一行“No perfect number”。
void PrintPN( int m, int n )
{
    int i, j, count = 0;
    for(i = m; i <= n; i++)
    {
        if(i == factorsum(i))
        {
            printf("%d = 1", i);
            for(j = 2; j < i; j++)
            {
                if(i % j == 0)
                {printf(" + %d", j);}
            }
            printf("\n");
            count++;
        }
    }
    if(count == 0)
    {printf("No perfect number\n");}
}

 


本文链接: http://www.dtmao.cc/news_show_100112.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?