zoukankan      html  css  js  c++  java
  • 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学习总结
    John 尼姆博弈
    博弈知识汇总(转)
    坏习纠正
    QDUOJ 河老师的新年礼物(尺取法)
    HDU
    QDUOJ ycb的ACM进阶之路 二进制多重背包
    HDU
    HDU
    POJ
  • 原文地址:https://www.cnblogs.com/airycode/p/5198567.html
Copyright © 2011-2022 走看看