分解质因子 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 Listfactor2(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)); } }