华为机试题:HJ6 质数因子

目录

友情提醒:
先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

第一章、算法题

1.1)题目描述

题目描述:

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

输入描述:

输入一个整数

输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

示例:

1.2)文的盲的解题思路与答案

解题思路:

①试除法是一种简单有效的方法,可以快速找到给定数的质因数。首先,从最小的质数2开始,不断用给定数去除,如果能整除,则找到一个质因数,并将其记录下来。然后将商作为新的数,继续用质数去除,直到商变为1为止。这样就可以找到给定数的所有质因数。

②因为一个正整数最多有一个质因子大于其平方根,且只会是其本身所以我们判断数 num 是不是质数时,没必要从 2 一直尝试到 num 一样,此题中的大循环也大可不必写一个到 num 的循环,写到 根号num即可,如果此时数字还没有除数,则可判定其本身是一个质数,没有再除下去的必要了,直接打印其本身即可:

答案:

java 复制代码
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    long num = scanner.nextLong();
    long k = (long) Math.sqrt(num);

    for (long i = 2; i <= k; ++i) {
        while (num % i == 0) {
            System.out.print(i + " ");
            num /= i;
        }
    }
    System.out.println(num == 1 ? "": num+" ");
}

1.3)牛客链接

牛客网链接

相关推荐
java1234_小锋几秒前
Java高频面试题:Redis是单线程还是多线程?
java·redis·面试
查古穆几秒前
二分查找-搜索二维矩阵
算法
工具罗某人几秒前
docker实现redis-cluster模式集群部署
java·redis·docker
会编程的土豆几秒前
【数据结构与算法】堆排序
开发语言·数据结构·c++·算法·leetcode
会编程的土豆2 分钟前
【数据结构与算法】希尔排序
数据结构·c++·算法·排序算法
邦爷的AI架构笔记9 分钟前
GLM-5.1 接入踩坑记录:用免费开源模型搭个 AI 代码审计小工具
后端·算法
苏宸啊11 分钟前
哈希扩展问题
算法·哈希算法
摇滚侠15 分钟前
从 Vibe Coding 到 Spec Coding:研发范式演进与高质量交付
java·人工智能·ai编程
汀、人工智能18 分钟前
[特殊字符] 第73课:打家劫舍
数据结构·算法·数据库架构·图论·bfs·打家劫舍
梁山好汉(Ls_man)24 分钟前
关于华为鸿蒙系统5A标志的几点看法
华为·鸿蒙·信号·5a