题目:
将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
1、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
2、如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
3、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码如下:
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入一个正整数:"); // 输入整数num;
int num=input.nextInt(); // 从键盘上接收输入的值
System.out.print(num+"=");
if(num ==1){
System.out.println(1);
}
for(int i=2;i<=num;i++){ // 用for循环从i=2开始一直遍历到i<=num;
if(num%i==0 && num!=i){ // 用这个数num%i取余,判断是否等于0,并且i!=num
System.out.print(i+"*");
num=num/i; // 如果条件成立,就输出i,并将num=num/i
i=2; // i=2,重新遍历
}
if(i==num){ // 直到i==num,就输出num,并跳出循环,程序结束
System.out.println(num); // 输出最后一个质因数
break;
}
}
}
}
代码执行结果如下: