分解质因子 package L4Loop;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/* * 分解质因子 * * 90 * 2*3*3*5 * */public class PrimeFactorization {/* * 分解质因数,递归调用 * */static List factor2(
package L4Loop;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
* 分解质因子
*
* 90
* 2*3*3*5
* */
public class PrimeFactorization {
/*
* 分解质因数,递归调用
* */
static List
factor2(int num){
List
li=new ArrayList
(); if(isPrime(num)){ li.add(num); } else{ for(int i=2;i<=num;i++){ while(num%i==0){ li.add(i); num=num/i; factor2(num); } } } return li; } /* * 判断素数 质数 * */ static boolean isPrime(int num){ for(int i=num-1;i>1;i--){ if(num%i==0){ return false; } } return true; } /* * 分解质因数,普通方法实现 * * */ static List
factor(int num){ List
li=new ArrayList
(); for(int i=2;i<=num;i++){ while(num%i==0){ li.add(i); num=num/i; //factor(num); } } return li; } public static void main(String[] args) { System.out.println("请输入正整数"); Scanner in=new Scanner(System.in); int ig=in.nextInt(); System.out.println(factor(ig)); System.out.println(factor2(ig)); } }
