BISHI56 分解质因数

思路

求解代码

java 复制代码
public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        Long n = Long.parseLong(br.readLine().trim());

        for (long i = 2; i * i <= n; i++) {
            while (n % i == 0) {
                out.print(i+" ");
                n/=i;
            }
        }
        if(n>1){
            out.print(n+" ");
        }

        out.flush();
        out.close();
        br.close();
    }

小贴士

后面那个if语句主要是处理分解后剩余的、大于√n 的质因数。

如果不加这个判断,会导致部分质数或大质因数无法被输出,最终分解结果不完整。

因为代码中外层循环的终止条件是 i * i <= n,只检查到√n,

如果一个数 n 能被分解为 a × b(a ≤ b),则 a 必然 ≤ √n,b 必然 ≥ √n。

因此只需检查到√n,就能找到所有小质因数,剩余的未分解部分要么是 1,要么是一个大于√n 的质数。

相关推荐
天诰9 分钟前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
蜗牛一步步往上爬2 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
这个昵称不容易4 小时前
SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在
java·springboot·毕设
计算机毕设定制辅导-无忧学长4 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
张张123y4 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
文丑颜不良啊5 小时前
LeetCode2221~2240题目解析
java·leetcode
秋饼6 小时前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发
冻柠檬飞冰走茶7 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
文丑颜不良啊7 小时前
LeetCode2161~2180题目解析
java·leetcode
FRing038 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2