zoukankan      html  css  js  c++  java
  • 求1000之内所有“完数”(注:C程序设计(第四版) 谭浩强/著 P141-9)

    /*求1000之内所有“完数”,所谓的“完数”是指一个数恰好等于它的所有因子之和。例如,6是完数,因为6=1+2+3。要求输出形式为 6 its factors are 1,2,3 (注:C程序设计(第四版) 谭浩强/著 P141-9)*/


    #include<stdio.h>

    int main()
    {
    int sum;//sum用来储存分解的因子和
    for(int i=1;i<=1000;i++)//从1循环到1000
    {
    sum=0;//对sum进行初始化赋值。


    //思考?为什么sum在此处赋值,而不是在  定义int sum时直接赋值?




    //从1循环到i-1,寻找i的因子,如果j是i的因子,sum就自增j
    for(int j=1;j<i;j++) 
    if(i%j==0) sum+=j;//for循环后只有一句循环语句,可以不用{},也可以加上{},if也是如此
    if(sum==i)//如果i是完全数,则开始打印
    {
    printf("%d its factors are 1",i);//这句实际输出的是  “i(一个具体数)its factors are 1”
    for(int m=2;m<i;m++) //for循环后只有一句循环语句,可以不用{},也可以加上{}
    if(i%m==0) printf(",%d",m);//用循环打印i在2到i-1的因子
    printf(" ");


    }
    }
    return 0;

    }



    /*输出结果:

    6 its factors are 1,2,3
    28 its factors are 1,2,4,7,14
    496 its factors are 1,2,4,8,16,31,62,124,248
    Press any key to continue


    */
  • 相关阅读:
    2017.3.11[bzoj2440][中山市选2011]完全平方数
    2017.3.6[hihocoder#1415]后缀数组三·重复旋律3
    2017.3.4[hihocoder#1407]后缀数组二·重复旋律2
    [NOI2013]快餐店
    [HNOI2014]米特运输
    [HNOI2015]亚瑟王
    [JLOI2013]卡牌游戏
    [SDOI2010]地精部落
    [ZJOI2007]棋盘制作
    [AHOI2009]中国象棋
  • 原文地址:https://www.cnblogs.com/MountDa/p/5831754.html
Copyright © 2011-2022 走看看