将一个正整数分解质因数
package xiaocheshi.com.ftl;
import java.util.Scanner;
public class Decompose {
public static void main(String[] args) {
// 题目:将一个正整数分解质因数。例如:输入100,打印出100=2*2*5*5。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要分解的数字:");
int n = scanner.nextInt();
Decompose decompose = new Decompose();
System.out.print(n+"=");
decompose.Decompose(n);
scanner.close();
}
public void Decompose(int n) {
/*
* 分两种情况:
* 第一种:由2开始遍历n的质因数,发现遍历到n是还没有遍历出来,则为1*n
* 第二种:由2开始遍历n的质因数,k是n的质因数,继续分解n/k
*/
boolean b=false;
for (int i = 2; i < n+1; i++) {
while(n%i==0&&n!=i) {
System.out.print(i+"*");
n=n/i;
b=true;
}
if (n==i&&b) {
System.out.print(n);
break;
}
if (n==i&&!b) {
System.out.print(1+"*"+n);
break;
}
}
}
}
运行结果: