读书人

写一个完善数程序

发布时间: 2012-09-05 15:19:35 作者: rapoo

写一个完美数程序

完美数,不明白的去bing搜索吧。

下面给程序代码,没有加多线程,不过现在的CPU已经很快了,瞬间就完了。

package com.yourcompany.struts;public class PerfectNumber {public static void main(String[] args) {// int sum, k;int perfectNum[] = new int[100];for (int num = 1; num <= 10000; num++) {int sum = 0;int maxPer = 0;for (int i = 1; i <= num - 1; i++) {if (num % i == 0) {sum = sum + i;perfectNum[maxPer++] = i;}}if (num == sum) {System.out.print(num + "=");for (int i = 0; i < maxPer; i++) {if (i > 0) {System.out.print("+");}System.out.print(perfectNum[i]);}System.out.print("\n");}}}}


运行结果如下:

6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064

1楼bill200711022昨天 20:35
O(N^2)的时间复杂度+低于O(N)的空间复杂度,对于n=10000确实可接受

读书人网 >编程

热点推荐