分解质因数
import java.util.Scanner;
public class Ex04factorization {
/*
* 分解质因数
*
* 循环以下步骤:
* (找出n的最小质因数k,打印最小质因数k
* n==k,break 完成
* n>k,n=n/k)
*
*/
public int minPrime(int n){
int k ;
for(k=2;k<=n;k++){
if(n%k==0)
break;
}
return k;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = s.nextInt();
System.out.print(n+" = ");
Ex04factorization ex04fac = new Ex04factorization();
int fac;
while(true){
fac = ex04fac.minPrime(n);
System.out.print(fac);
if (fac == n) break;
n = n/fac;
System.out.print("*");
}
s.close();
}
}
【运行结果】
请输入一个正整数:
84
84 = 2*2*3*7