1 问题
存在这样的一个数,如果该数的值等于它的因子之和(不包括它本身),该数就称为“特殊数”。例如,6的因子为1、2、3,并且6=1+2+3,因此6就是“特殊数”;28的因子为1、2、4、7、14,并且 28=1+2+4+7+14,所以28是“特殊数”。找出1000以内的所有完数。
2 方法
public class Complete_number { public static void main(String [] args) { for(int i = 1;i<=1000;i++) { int num = 0; for(int j = 1;j<i;j++) { if(i%j == 0) { num += j; } } if(i == num) { System.out.println(i+"是完数"); } } } } |
3 结语
针对完数问题,我们采用循环的方式来进行解决,先找出这个数的全部因子,然后加起来和这个数比较,如果相等即证明这个数是完数。注意别把这个数本身算进去。