码迷,mamicode.com
首页 > 编程语言 > 详细

Java用数据结构解决实现问题之数学问题

时间:2016-02-18 17:38:14      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:

有趣的整数:

  完数:如果一个数字恰好等于他的因子之和,就叫做完数,需求是求出10000以内的所有的完数。

    解法:1.用n去除以1-n之间的所有的整数,将能整除的被除数保存到一个数组中,作为n的一个因子。

         2.用数n减去该因子,以方便计算各因子之和是否等于n.

         3.重复步骤1和2找到所有的完数为止。

          4.最后判断各因子之和是不是等于数n若相等,则数n为完数,输出该数的因子数。

 

package 完数;

public class PerfectNum {

	public static void main(String[] args) {
		int p[] = new int[30];
		int count = 0;
		int s = 0;
		int c = 0;
		int i = 0;
		for (int num = 2;num <=10000;num++) {
			s = num;
			for ( i =1;i<num;i++) {
				if (num % i == 0) {
					p[count++] = i;
					s-=i;
				}
			}
			if (s == 0) {
				System.out.printf("%d是一个完数,因子是",num);
				System.out.printf("%d = %d",num,p[0]);
				for (i = 1;i<count;i++) {
					System.out.printf("+%d",p[i]);
				}
				System.out.println();
				c++;
			}
		}
	}
	
}

 

Java用数据结构解决实现问题之数学问题

标签:

原文地址:http://www.cnblogs.com/airycode/p/5198567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!