题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。(Java经典编程案例)

340 阅读1分钟

题目:
将一个正整数分解质因数。例如:输入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;
            }
        }
    }
}

代码执行结果如下:
在这里插入图片描述