【题目要求】
编写一个程序,实现分解质因数。
【方法一】
import java.util.Scanner;
public class Ta {
public static void main(String[] args){
Scanner str = new Scanner(System.in);
int n=str.nextInt();
fan(n);
}
public static void fan(int x){
if(a(x)){//假如是质数打印
System.out .print(x);
}else{//假如是合数递归
for(int i=2;i<x;i++){
if(x%i==0){
System.out.print(i);//打印质因数
if(a(x/i)){//如果除以质因数是质数
System.out.print(x/i);
break;
}else{//递归
fan(x/i);
}
break;
}
}
}
}
public static boolean a(int x){
for(int i=2;i<x;i++){
if(x%i==0){
return false;
}
}
return true;
}
}
【方法二】
import java.util.Scanner;
public class Ta {
public static void main(String[] args){
Scanner str = new Scanner(System.in);
int n=str.nextInt();
System.out.print(n+"=");
while(n>1){
for(int i=2;i<=n;i++){
if(fan(i)&&n%i==0){
n/=i;
System.out.print(n>1?i+"*":i);
break;
}
}
}
}
public static boolean fan(int x){
for(int i=2;i<x;i++){
if(x%i==0){
return false;
}
}
return true;
}
}
【输出例子】