题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:如题素数是从小到大打印,为了方便,我们就从小找到大,判断是质因数的条件是此数是质数且能被当前的数整除,当前数是动态变小的,变小的规则是除以他找到的质因数。
import java.util.Scanner;
public class Program {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入一个正整数:");
int num = sc.nextInt();
System.out.print(num + "=");
int flag = 0;
for ( int i = 2; i <= num; i++) {
if ( judgePrimeNumber(i) && num % i == 0 ) {
flag++;
if ( flag == 1) {
System.out.print(i);
}else {
System.out.print("*"+i);
}
num /= i;
i--;
}
}
}
public static boolean judgePrimeNumber(int num) {
for ( int i = 2; i <= Math.sqrt(num); i++ ) {
if ( num % i == 0 ) {
return false;
}
}
return true;
}
}