首页 > 其他分享 >完数

完数

时间:2023-11-27 11:15:51浏览次数:20  
标签:factors int sum 因子 完数 its

找出1000之内的所有完数,并输出其因子

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,且6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,按如下格式输出其因子:6 its factors are 1 2 3

#include<stdio.h>
int main(){
    int i,j,k,m;
    int x,sum;
    int ma[100]={0};
    for(x=1;x<1000;x++){
        sum=1;
        k=0;
        for(i=2;i<x;i++){
            if(x%i==0){
                sum+=i;
                ma[k++]=i;
            }
        }
        if(sum>1&&sum==x){
        printf("%d its factors are ",sum);
        for(m=0;m<k;m++){
            printf("%d ",ma[m]);
        }
        printf("\n");
        }
    }
    
    return 0;
}

注意双重循环中,不要忘记对内循环的变量进行重新初始化,即本题的sum=1;k=0;的位置很关键。

标签:factors,int,sum,因子,完数,its
From: https://www.cnblogs.com/wssty/p/17858799.html

相关文章

  • 算法1:寻找完数(JS)
    任务一:寻找完数打印10000以内的完数完数:与自己所有因子之和相等的数。1letsum=0,i,j;//定义变量sum、i和j23for(i=1;i<10000;i++){4sum=0;//初始化sum为05letfactors=[];//存储因子的数组67//寻找i的因子并计算它......
  • 完数
    完数即完全数,又称完美数或完备数,是一些特殊的自然数。它所有的真因子的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。如果一个数恰好等于它......
  • 3.求2-20000的完数
    #include<iostream>usingnamespacestd;/*求解完数,数字的因数等于该数字,2-20000*/intmain(){intnum=0;for(inti=2;i<=20000;i++){intx=i,sum=0;for(intj=1;j<x;j++){if(x%j==0){sum+=j;......
  • 完数
    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1114题意:给定一个数n,求满足条件大于等于n的最小的完数。分析:我们先把前13个完数存进数组,然后比较即可。因为第13个完数的位数已经大于100位了,所以再大的就用不着了。再利用Java的BigInteger进行比较很方便。imp......
  • 完数
    #include<stdio.h>intmain(){ intm,n; scanf("%d%d",&m,&n); inti,j; intsum=0; intflag=0; for(i=m;i<=n;i++) { sum=0; for(j=1;j<i;j++) if(i%j==0) sum+=j; if(sum==1) { flag=1; printf("%ditsfactorsare1",......
  • 完数
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>main(){ inti,j,s,n; printf("输入所范围的上限:"); scanf("%d",&n); for(j=2;j<=n;j++) { s=1; //保证每次循环i的初值为1 for(i=2;i<=j/2;i++) if(j%i==0)......
  • 完数
    一、问题描述求某一范围内完数的个数。如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。二、问题分析根据完数的定义,解决本题的关键是计算出所选取的整数i(i的取值范围不固定)的因子(因子就是所有可以整除这个数的数......
  • 编程找出 1000 以内的所有完数
    一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。perfect_number_list=[]forperfect_numberinrange(2,1000):#找出一个数的所有因子,加入到因数列表里factor_list=[]forfactorinrange(1,perfect_......
  • 打卡5.9——求某一范围内完数的个数
    如果一个数等于它的因子之和,则称该数为完数,例如“6”的因子为1,2,3,而6=1+2+3,因此6是完数问题分析:假设一个数d,然后计算出它的每个因子,用到for循环,假如是a,b,c,然后进行一个判断如果a+b+c=d,就说明d是完数,应该要用到两层循环,最外层循环从2开始,一直到d,内层循环从1开始,一直到a,然后开始取余......
  • 3.1完数
    1.问题描述求某一范围内完数的个数。如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。2.代码#include<stdio.h>intmain(){ intn,N,count=0,sum,i,j;//n,N确定区间范围 scanf("%d,%d",&n,&N); for(i=n;i<N;i++) { ......