java实现正整数分解质因数(改良版)

来源:互联网 发布:阿里云备案域名介入 编辑:程序博客网 时间:2024/06/05 15:06

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

package mydemo;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 将一个正整数分解质因数 *  * @author trust the process * */public class ZhiYinShuFenJie {public static void main(String[] args) {System.out.println("======正整数的质因数分解======");System.out.println("请输入一个正整数:");Scanner s = new Scanner(System.in);int n = s.nextInt();//创建一个集合,用于存放质因数List<Integer> list = new ArrayList<>();//获取质因数test(n, list);//打印结果System.out.print(n + "=");// 遍历集合if (list.size() == 1) {System.out.print(list.get(0));} else {for (int i = 0; i < list.size(); i++) {if (i == 0) {System.out.print(list.get(i));} else {System.out.print("*" + list.get(i));}}}}public static int test(int n, List<Integer> primes) {for (int i = 2; i < n; i++) {if (n % i == 0) {primes.add(i);n = n / i;return test(n, primes);}}primes.add(n);return n;}}


0 0