题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

import java.util.Scanner;

/**
 * 【质数因子】
 *
 *  描述:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
 *
 *  【重要知识点】:每一个正整数的质数因子都不会超过本身的算术平方根+1
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int nextInt = sc.nextInt();
        // 临时保存输入的初始值
        int temp = nextInt;
        // 输入值开平方根
        Double sqrt = Math.sqrt(nextInt);
        
        for (int k = 2; k <= sqrt.intValue() + 1;) {
            if (nextInt % k == 0) {
                nextInt = nextInt / k;
                System.out.print(k + " ");
            } else {
                k++;
            }
        }
      
        if (temp == nextInt) {
            // 本身就是质数
            System.out.println(temp);
        } else if (nextInt != 1) {
            System.out.println(nextInt);
        }
    }
}

全部评论
大哥,你的好像有点问题,质因子可能存在比其开方数大的,且有且只有一个且必定大于开方数+1
点赞 回复 分享
发布于 2022-06-02 23:33

相关推荐

2025-11-26 09:37
山西大学 测试工程师
累死的一条狗:学长你电脑闹鬼了
点赞 评论 收藏
分享
2025-12-10 19:36
湖北工业大学 Web前端
饿魔:看到在线简历了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务