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

牛客网链接

相关推荐
在努力的前端小白8 分钟前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
Coovally AI模型快速验证2 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun2 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
一叶飘零_sweeeet2 小时前
从繁琐到优雅:Java Lambda 表达式全解析与实战指南
java·lambda·java8
RaymondZhao343 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
艾伦~耶格尔3 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
zhangfeng11333 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
一只叫煤球的猫3 小时前
🕰 一个案例带你彻底搞懂延迟双删
java·后端·面试
最初的↘那颗心3 小时前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
啊阿狸不会拉杆4 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法