zoukankan      html  css  js  c++  java
  • 完数

    完数(5分)

    题目内容:

    一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。

    现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

    提示:可以写一个函数来判断某个数是否是完数。

    输入格式:

    两个正整数,以空格分隔。

    输出格式:

    其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一行文字:

    NIL

    (输出NIL三个大写字母加回车)。

    输入样例:

    1 10

    输出样例:

    6

    时间限制:500ms内存限制:32000kb
     
    参考代码:

    #include<stdio.h>

    int iswanshu;

    void wanshu(int n){

        int a[100]={0};

        int i;

        int j = 0;

        int cnt = 0;

        int ret = 0;//记录因子之和

     

        for(i=1;i<n;i++){

            if(n%i==0){

                a[j++]=i;

                cnt++;

            }

        }

        for(i=0;i<cnt;i++){

            ret+=a[i];

        }

        if(ret==n){

            iswanshu=1;

        }else{

            iswanshu=0;

        }

    }

    int main(){

        int a[100]={0};

        int n,m;

        int cnt = 0;

        int j = 0;

        scanf("%d %d", &n, &m);

        for(int i=n;i<=m;i++){

            wanshu(i);//调用函数判断一个数是否为完数

            if(iswanshu==1){

                a[j++]=i;

                cnt++;

            }

        }

        if(cnt!=0){

            for(int i=0;i<cnt;i++){

                if(i<cnt-1){

                    printf("%d ",a[i]);

                }else{

                    printf("%d",a[i]);

                }

            }      

        }else{

            printf("NIL ");

        }

        return 0;

    }

     

  • 相关阅读:
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    实验 2:Mininet 实验——拓扑的命令脚本生成
    软工第一次作业——自我介绍
    博客园美化
    实验 1:Mininet 源码安装和可视化拓扑工具
    软工实践个人总结
    结对编程之学术家族树
    软件工程实践结对编程作业(需求分析与原型设计)
    软件工程实践个人编程作业
    软件工程实践第一次个人作业
  • 原文地址:https://www.cnblogs.com/zhhjthing/p/7782360.html
Copyright © 2011-2022 走看看