首页 > 其他分享 >完数

完数

时间:2023-05-06 09:33:47浏览次数:25  
标签:数字 int sum 因子 循环 完数

一、问题描述:

 

二、设计思路:

    找一个范围内的完数,首先得找因子,怎么找因子呢?因子可以由输入的数字从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;
}

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

 

标签:数字,int,sum,因子,循环,完数
From: https://www.cnblogs.com/bzsc/p/17369705.html

相关文章

  • 完数
    一问题描述一个数的所有因子相加和等于本身那么这个数就是完数,给出一个范围求其中的完数。二设计思路利用循环嵌套第一层将每个数分出来,第二层确定是不是因子若是将每次的相加在循环外比较相同就是完数。三程序流程图 四伪代码实现#include<iostream>usingnamespacestd......
  • 求某一个范围内完数的个数
    如果一个数等于它的因子之和,则称该数为完数,例如“6”的因子为1,2,3,而6=1+2+3,因此6是完数问题分析:假设一个数d,然后计算出它的每个因子,用到for循环,假如是a,b,c,然后进行一个判断如果a+b+c=d,就说明d是完数,应该要用到两层循环,最外层循环从2开始,一直到d,内层循环从1开始,一直到a,然后开始取余......
  • 完数
    完数:求某一范围内完数的个数。如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。解题思路:先输入上限,再根据for循环嵌套外层循环遍历所求范围,内层循环寻找因子,再根据条件判断是否为因子,记录因子之和与该数是否相等,判......
  • 求完数(第十一届 省赛 T2)
     题目:    那么题目里面有需要求因数之和的程序,那么我们先来写一个求因数之和的程序:intw(intk){intans=0;for(inti=1;i*i<=k;i++){......
  • 50道编程题之09:一个数如果刚好等于它的因子之和,这个数就称为"完数"。例如6 = 1+2+3,编
    packagecom.demo;/***Createdby莫文龙on2018/3/27.*/importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.u......
  • c语言填空:完全数 完数判断
    #include<stdio.h>//编写一个程序,输入一个整数n,判断其是否为完数//如果一个数等于它的因子之和,则称该数为完数或完全数//例如6=1+2+3,因此6是完数main(){int......
  • C语言:判断完数
      #include<stdio.h>main(){inti,n,s;s=0;scanf("%d",&n);for(i=1;i<n;i++)if(n%i==0)s=s+i;if(s==n)printf("%d是完数",n......
  • 找出1000以内的所有完数
    题目  找出1000以内的所有完数。一个数如果恰好等于它的真因子之和,这个数就称为"完数"。例如6=1+2+3。基本概念  假如整数n除以m,结果是无余数的整数,那么我们称m就是n......
  • 一个数如果恰好等于它的因子之和,这个数称为“完数”,如6的因子为 1,2,3,而1+2+3=6,因此6就
    输入:输入一个整数n(0<n<=1000)输出:输出2到n间的所有完数。注:如果有多个,输出在同一行,用空格隔开,如果没有,输出“NO”。如:输入3,输出:NO;输入8,输出:6;输入30,输出:628。......
  • el-select选择完数据后。再添加一条新数据已选择的不能选中
    需求:有个动态添加的表格,表格的险种是用的el-select做的,然后新增一条记录后,已经选择的险种不能够再选择 再新增一条时,已经选择的医疗和大病就不能选择了 elementUI......