分解质因数

题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。

package test;

import java.util.Scanner;

/** 分解质因数 */
public class DPrime {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个正整数: ");
        int n = scanner.nextInt();

        int k = 2;  // 最小质数
        System.out.print( n + "=" );

        while (k <= n){
            if (k == n){    // 当n==当前质数时,跳出循环,直接返回
                System.out.print(n);
                break;
            }else if (n % k == 0){  // 当能被当前质数整除,得出质因数
                System.out.print(k + "*");
                n = n / k;
            }else  k++; // 不能被当前质数整除,质数递增+1
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容