zoukankan      html  css  js  c++  java
  • 循环-23. 找完数

    循环-23. 找完数(20)

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    陈建海(浙江大学)
    来源
    ZOJ

    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

    输入格式:

    输入在一行中给出2个正整数m和n(0<m<=n<=10000),中间以空格分隔。

    输出格式:

    逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。

    输入样例:

    1 30
    

    输出样例:

    1 = 1
    6 = 1 + 2 + 3
    28 = 1 + 2 + 4 + 7 + 14
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #include<string.h>
     5 int main()
     6 {
     7     int n, m, i, j, sum;
     8     scanf("%d%d", &n, &m);
     9     int flag[m+1];
    10     flag[1] = 1;
    11     for(i = 2; i <= m+1; i++)
    12         flag[i] = 0;
    13     for(i = n; i <= m; i++)
    14     {
    15         sum = 1;
    16         for(j = 2; j <= sqrt(i); j++)
    17         {
    18             if(i%j == 0)
    19                 sum = sum + j + i / j;
    20         }
    21         if(sum == i)
    22             flag[i] = 1;
    23     }
    24     for(i = n; i <= m; i++)
    25     {
    26         if(flag[i])
    27         {
    28             printf("%d = 1", i);
    29             for(j = 2; j < i; j++)
    30                 if(i%j == 0)
    31                     printf(" + %d", j);
    32             printf("
    ");
    33         }
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    Spring 集成Quartz
    windows跟linux文件共享
    5.5.3使用terminfo功能标志
    5.4.1 termios结构,关闭回显功能,一键入字符fgetc立刻返回,不用按下回车键
    5.2与终端进行对话
    5.1对终端进行读写
    4.8资源和限制
    4.7日志
    大小端问题
    QWebView下载文件,QUrl中解析文件名
  • 原文地址:https://www.cnblogs.com/yomman/p/4232207.html
Copyright © 2011-2022 走看看