算法:将一个正整数分解质因数

mac2025-06-13  20

题目

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

分析

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   

如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。    如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。   如果n不能被k整除,则用k+1作为k的值,重复执行第一步。   

JAVA实现

public class Zhiyinshu { public static void zhiyinshu(int num) { int k = 2; StringBuilder str = new StringBuilder(""+num).append(" = "); int forEachSum = 0; while (num >= k) { forEachSum++; if (num == k) { str.append(k); break; } else if (num % k == 0) { str.append(k).append(" * "); num = num / k; } else { k++; } } System.out.println(str + ",循环次数:" + forEachSum); } public static void main(String[] args) { while(true) { Scanner input = new Scanner(System.in);// 通过new关键字创建了一个Scanner对象 // 类似于扫描仪 System.out.println("请输入一个整数:"); int num = input.nextInt(); zhiyinshu(num); } } } // 请输入一个整数: // 90 // 90 = 2 * 3 * 3 * 5,循环次数:7 // 请输入一个整数:

 

最新回复(0)