完数

一、问题描述:

 

二、设计思路:

    找一个范围内的完数,首先得找因子,怎么找因子呢?因子可以由输入的数字从1到该数字(优化为到该数字的一半)依次求余得到,然后用累加的思想,sum+=i,将得到的因子加到这个和里面,我们这样就完成了一个数字的求因子,我们求的是一个范围,那么至少得两层循环来达到要求,第一层循环结束后,把求和sum置0,不然下一次就不能准确求到该因子。

 

 三、程序流程图:

    

 

四、代码实现:

#include<stdio.h>
int main()
{
    int x,i,j;
    int sum;
    scanf("%d",&x);
    for( j=2;j<=x;j++)
    {
        sum=0;
     for( i=1;i<j;i++)
      {
        if(j%i==0)
            sum+=i;
      }
        if(sum==j)
        {
            printf("是完数:%d",j);
            printf("\n");
        }
    }
    
    
    
    return 0;
}

 大功告成,看点爱与死亡机器人奖励一下自己,嘻嘻

 

posted @ 2023-05-06 09:24  软件拓荒人  阅读(85)  评论(0)    收藏  举报