0
点赞
收藏
分享

微信扫一扫

算法提高 质因数2(java)

Spinach菠菜 2022-02-27 阅读 49

算法提高 质因数2

描述

将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。

输入
输入描述:

一行,一个正整数

输入样例:

66

输出
输出描述:

两行,第一行为用空格分开的质因数

第二行为质因数的个数

输出样例:

2 3 11

3
思路:
开始没有写i–;导致无法重复录入,比如8应该分解为2 2 2;
但是因为没有i–;就变为了2 4。
还是要仔细一点

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        List<Integer> list=new ArrayList<>();
        int M=N;
        for (int i=2;i<=N;i++){

            if (M%i==0){
                if (M/i==1){
                    list.add(i);
                    break;
                }
                list.add(i);
                M=M/i;
                i--;//非常重要的一步
            }

        }

        for (int i:list){
            System.out.print(i+" ");
        }
        System.out.println();
        System.out.println(list.size());
    }
}

举报

相关推荐

0 条评论