1 /*9 【程序 9 求完数】 2 题目:一个数如果恰好等于它的所有因子之和,这个数就称为"完数"。 3 例如 6=1+2+3.编程找出 1000 以内的所有完数。 4 */ 5 6 /*分析 7 * 1、完数:各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数 8 * 2、怎么找到一个数的所有因子---——-从1到n对n取余 9 * 3、遍历1~1000,找出每个数的所有因子再求和 10 * */ 11 12 13 14 package homework; 15 16 public class _09 { 17 18 public static void main(String[] args) { 19 //声明和s,因子a 20 int s=0,a=1; 21 //遍历1~1000 22 for (int i = 1; i <=1000; i++) { 23 //遍历1~i 24 for (int j = 1; j <i; j++) { 25 //用取余判断j是否为i的因子,如果是,将其加到和s; 26 a=i%j; 27 if(a==0) { 28 s=s+j; 29 // System.out.println(j+" "+a+" "+s+" "+i); 30 } 31 } 32 //这个i所有的因子的和是否等于i,相等则是完数 33 if(s==i) { 34 System.out.print(i+" "); 35 } 36 s=0; //将和s复位 37 } 38 39 } 40 41 }
来源:https://www.cnblogs.com/scwyqin/p/12295841.html