zoukankan      html  css  js  c++  java
  • nyist 597 完数?

    http://acm.nyist.net/JudgeOnline/problem.php?pid=597

    完数?

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
     
    描述

    一个数如果恰好等于不等于它本身的所有因子之和,那么这个数就被称为"完数"。例如,6的因子为1,2,3,而6=1+2+3,因此,6是完数。要求给定一个整数n,请编写程序,确定n是否是完数。

     
    输入
    每组数据输入一个n(1<=n<=10^4)
    当n为-1时,输入结束。
    输出
    每组数据输出一行,如果 n 不是完数,输出 No 。
    否则,以 n 的因子由小到大相加的形式输出。
    样例输入
    1
    2
    6
    -1
    样例输出
    No
    No
    6=1+2+3

    分析:
    直接求n的因子即可。

    AC代码:
     1  
     2 #include<stdio.h>
     3 int main()
     4 {
     5 int n,i,s;
     6 while(scanf("%d",&n)&&n!=-1)
     7 {
     8     s=0;
     9     for(i=1;i<=n/2;i++)
    10     {    if(n%i==0)    s=s+i;}
    11     if(s==n)
    12     {
    13     printf("%d=1",n);
    14     for(i=2;i<=n/2;i++)
    15         if(n%i==0)    printf("+%d",i);}
    16     else printf("No");
    17     printf("
    ");
    18 }
    19 return 0;
    20 }        
  • 相关阅读:
    157 判断字符串是否没有重复字符
    53 翻转字符串
    671 循环单词
    8 旋转字符串
    39 恢复旋转字符串
    6 合并排序数组 Ⅱ
    64 合并排序数组
    60 搜索插入位置
    141 x的平方根
    TCSRM 593 div2(1000)(dp)
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/4485431.html
Copyright © 2011-2022 走看看