关闭

C语言入门-第六周:作业02

标签: c语言
66人阅读 评论(0) 收藏 举报
分类:

2完数(5分)

题目内容:
一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。

现在,你要写一个程序,读入两个正整数n和m n>=1,m>n,m<1000,输出[n,m]范围内所有的完数。

提示:可以写一个函数来判断某个数是否是完数。

输入格式:
两个正整数,以空格分隔。

输出格式:
其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一行文字:
NIL
(输出NIL三个大写字母加回车)。

输入样例:
1 10

输出样例:
6
时间限制:500ms内存限制:32000kb

#include<stdio.h>
#include<Windows.h>

int isWanShu(int Zhengzhu);

int main() {
    int n = 0;
    int m = 0;
    scanf_s("%d %d", &n,&m);

    for (int i = n; i <= m; i++) {
        if (isWanShu(i)) {
            printf("%d ", i);
        }
    }

    printf("\b\nNIL\n"); //  \b回退一格

    system("pause");
    return 0;
}

int isWanShu(int Zhengzhu) {
    int ret = 0;
    int sum = 0;
    for (int i = 1; i < Zhengzhu; i++) {
        if (Zhengzhu %i == 0) {
            //printf("i = %d\n", i);
            sum += i;
        }
    }
    if (Zhengzhu == sum) {
        //printf("%d是完数\n", Zhengzhu);
        ret = 1;
    }
    return ret;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2607次
    • 积分:199
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档