7-7 找完数(20 分)

来源:互联网 发布:四旋翼pid算法 编辑:程序博客网 时间:2024/05/16 08:34

一、题目

这里写图片描述

二、个人理解

此题就是先进行因子的计算,因为必须要判断所有因子和是否等于数字,所以要保存以前的因子,这里我们可以采用数组来进行保存。


C语言:

#include <stdio.h>#include <string.h>#define maxn 10000int main(){    int m, n, a[maxn], count = 0;    scanf("%d%d", &m, &n);    for (int i = m; i <= n; i++) {        memset(a, 0, sizeof(a));    //这是对数组进行初始化为0        int sum = 0;        for (int j = 1; j < i; j++) {//进行因子的保存            if (i % j == 0) {                a[j] = 1;   //值为1的索引即是因子                sum += j;   //顺便可以计算因子和            }        }        if (i == sum) { //进行判断            count++;    //这是判断有没有,若为0,则输出None            printf("%d = ", i);            int tag = 1;//tag的作用为进行格式化输出            for (int t = 0; t < maxn; t++) {                if (a[t] == 1) {                    if (tag) {                        printf("%d", t);                        tag = 0;                    } else {                        printf(" + %d", t );                    }                }            }            printf("\n");        }    }    if (count == 0) {        printf("None");    }}
原创粉丝点击