Java用数据结构解决实现问题之数学问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java用数据结构解决实现问题之数学问题相关的知识,希望对你有一定的参考价值。
有趣的整数:
完数:如果一个数字恰好等于他的因子之和,就叫做完数,需求是求出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用数据结构解决实现问题之数学问题的主要内容,如果未能解决你的问题,请参考以下文章