c/c++语言完数问题

img


知道如何找因数,但不知道如何用for结构来判断是否为完数,并且按要求输出😭

参考


你题目的解答代码如下:

#include<stdio.h>
int main()
{
    int i, j, s, n;  /*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
    int a[100],l;
    scanf("%d", &n);  /* n的值由键盘输入*/
    for( i=2; i<n; i++ )
    {
        l=0;
        s=0;  /*保证每次循环时s的初值为0*/
        for( j=1; j<i; j++ )
        {
            if(i%j == 0)  /*判断j是否为i的因子*/
            {
                s += j;
                a[l++] = j;
            }
        }
        if(s == i)  /*判断因子这和是否和原数相等*/
        {
            printf("%d:", i);
            for (j = 0; j < l; j++)
                printf("\t%d", a[j]);
            printf("\n");
        }
    }
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

弄俩个循环,外侧循环就是从2到你输入的n,内测循环从1开始判断一下是不是这个数因子求和比较,

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632