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

基础篇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)+" , ");
        }
    }
}
原文地址:https://www.cnblogs.com/yuwenfeng/p/3086828.html