找出一个整数的所有非平凡因子

基础篇p117,4.16答案

编写程序,读入一个整数,然后以升序的形式显示所有最小银子,例如输入120,输出是:2,2,2,3,5.

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 计算一个整数的所有因子
 * @author Chobits
 *
 */
public class getfactor {


    static ArrayList list=new ArrayList();
    public static int getFactor(int n){
        int result=-1;
        for(int k=2;k<=n;k++){
            if(n%k==0){
                result=k;
                break;
            }
        }
        return result;
    }
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        int number=input.nextInt();
        int temp=getFactor(number);
        while(temp!=-1){
            list.add(temp);
            number=number/temp;
            temp=getFactor(number);
        }
        for(int index=0;index<list.size();index++){
            System.out.print(list.get(index)+" , ");
        }
    }
}

 

posted on 2013-05-19 14:34  ywf—java  阅读(1524)  评论(0编辑  收藏  举报

导航