华为机试题: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)牛客链接

牛客网链接

相关推荐
2401_857439694 分钟前
社团管理新工具:SpringBoot框架
java·spring boot·后端
ThetaarSofVenice15 分钟前
Java从入门到放弃 之 泛型
java·开发语言
zzzhpzhpzzz21 分钟前
设计模式——观察者模式
算法·观察者模式·设计模式
嘟嘟Listing23 分钟前
jenkins docker记录
java·运维·jenkins
WHabcwu29 分钟前
统⼀异常处理
java·开发语言
zaim130 分钟前
计算机的错误计算(一百六十三)
java·c++·python·matlab·错数·等价算式
枫叶丹430 分钟前
【在Linux世界中追寻伟大的One Piece】多线程(一)
java·linux·运维
2401_8543910831 分钟前
Spring Boot OA:企业数字化转型的利器
java·spring boot·后端
Mr__vantasy32 分钟前
数据结构(初阶6)---二叉树(遍历——递归的艺术)(详解)
c语言·开发语言·数据结构·算法·leetcode
敲键盘的老乡35 分钟前
堆优化版本的Prim
数据结构·c++·算法·图论·最小生成树