数学问题——找“完数”

来源:互联网 发布:如何拷贝mac照片 编辑:程序博客网 时间:2024/06/13 08:53

一、数学背景介绍:如果一个数恰好等于其因子之和,这个数就称为完美。例如,6=1+2+3,6就是一个完数。而第二个完数是28,28=1+2+4+7+14。完数在自然数中很少。据统计,在1~4000万这么多的自然数里,只有7个完数,依次是6,28,496,8128,120816,2096128,33550336。

二、要求编写代码实现找出10000以内的所有完数。

package com.js.math;/** * 完数 * @author js * */public class PerfectNum {public static void main(String[] args) {int[] p = new int[300];int i,num,count,s,c=0;for(num=2;num<=10000;num++){count = 0;s = num;for(i=1;i<num;i++){if(num%i==0){p[count++] = i;s-=i;}}if(s==0){System.out.println(num+"是一个完数");c++;}}System.out.println("共找到"+c+"个完数");}}