黑马程序员技术交流社区

标题: 不会写完数,麻烦写上注释 [打印本页]

作者: 陆习康    时间: 2014-7-28 14:22
标题: 不会写完数,麻烦写上注释
网上看了不少代码,可看不懂,求解,1000以内的完数,打印出来
作者: 道本真    时间: 2014-7-28 15:00
  1. int main ()
  2. {
  3.     //定义一个数,该数是我们要查找的范围
  4.     int num1 = 1000 ;
  5.     //顶一个和变量,代表因子之和
  6.     int sum;
  7.     //历遍我们要查找的范围,找完数
  8.     for (int i = 1; i <= num1 ;i++)
  9.     {
  10.         sum = 0;
  11.         //求每个数的因子之和
  12.         for (int j=1;j<=i/2; j++)
  13.         {
  14.             if (i%j==0)
  15.             {
  16.                 sum+=j;
  17.             }
  18.         }
  19.         if (i == sum)//如果这个数与这个数的因子之和相等,则输出
  20.         {
  21.             printf("属于完数的值有:%d\n", i);
  22.         }
  23.         
  24.     }
  25.    
  26.     return 0;
  27. }
复制代码



作者: hdchenyue    时间: 2014-7-28 15:49
编写一个Java程序,输出任意数之间的所有完数。*/  
* 程序头部的注释结束
*/

public class TestComNum {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println("1000以内的完数有:");
                printComNum(1000);
        }
        static void printComNum(int n){
               
               
               
                for(int i = 1; i <= n; i++)
                {
                        int sum = 0;
                        for(int j = 1; j < i; j++)
                        {
                if(i % j == 0)
                {
                        sum = sum + j;       
                }   
                        }
                        if(sum == i)
            {
                    System.out.println(i);
            }
                }
               
        }

}
作者: 陆习康    时间: 2014-7-30 17:01
道本真 发表于 2014-7-28 15:00

多谢了,看来我还是要好好学习学习,免得以后学习的时候纠结
作者: 温天恩    时间: 2014-8-2 18:13
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         // 从1000以内查找完美数
  5.         for (int i = 2; i <= 1000; i++)
  6.         {
  7.                 // 定义一个数来存放因子的和
  8.                 int sum = 0;

  9.                 // 查找小于数本身的因子,并求和
  10.                 for(int j = 1; j < i; j++)
  11.                 {
  12.                         if (i % j == 0)
  13.                         {
  14.                                 sum += j;
  15.                         }
  16.                 }

  17.                 // 如果因子和等于本身,则输出为完美数
  18.                 if (sum == i)
  19.                         {
  20.                                 printf("%d是一个完美数!\n", i);
  21.                         }
  22.         }
  23.     return 0;
  24. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2