当前位置: 首页 > news >正文

【刷题】质数因子

一、题目描述

二、解题思路

  • n如果是偶数,那么2一定是n的因子,所以首先检查n是否是偶数,如果是偶数就不断地除2,直到不为偶数为止。
  • 大于2的偶数一定不会是某个数的因子,所以从3开始检查每个奇数是否可以除尽n,重复这个过程直到该奇数不再能整除n。
  • 数学原理:如果一个数n是合数(即非质数),那么它至少有一个质因子小于或等于\sqrt{n}

  • 将遍历上限设置为int(n ** 0.5) + 1是为了在保证能找到所有小于等于的质因数的前提下,减少不必要的遍历次数,从而提高算法的效率。

三、代码参考

n = int(input())
factors = []#因子为2
while n % 2 == 0:factors.append(2)n = n//2#因子为奇数
i = 3
#如果一个数n是合数(即非质数),那么它至少有一个质因子小于或等于n**0.5
max_factor = int(n**0.5)+1#优化
while i <= max_factor:while n % i == 0:factors.append(i)n = n//imax_factor = int(n**0.5)+1i+=2if  n > 1:factors.append(n)print(' '.join(map(str,factors)))

 

相关文章:

  • JDK21深度解密 Day 2:虚拟线程入门与基础应用
  • lc hot 100之:环形链表
  • Redis 常用命令
  • 005 深度优先搜索(DFS)算法详解:图解+代码+经典例题
  • Linux命令简介
  • ByteCTF2021 BabyDroid WP
  • RAM(随机存取存储器)的通俗解释及其在路由器中的作用
  • 推荐系统里真的存在“反馈循环”吗?
  • 前端表单中 `readOnly` 和 `disabled` 属性的区别
  • PHP SPL 自动加载机制详解与实战应用:spl_autoload_register 使用指南
  • σ 滤波器(Sigma Filter)基本原理及其优化版本介绍
  • Python爬虫开发基础案例:构建可复用的名言采集系统
  • 介绍一下什么是反射(面试题详细讲解)
  • P3392 涂条纹
  • VILT模型阅读笔记
  • 3.5/Q1,Charls最新文章解读
  • 广东省省考备考(第十九天5.24)—申论(听课后强化训练)
  • 超时处理机制设计:从TICK到回调
  • JavaSE常用API之Object类:Java万物之基
  • AI知识库
  • 商务网站建设与维护/seo网站优化方案书
  • 什么叫网站根目录/百度营销推广登录
  • 合肥网站建设制作/站长之家备案查询
  • 网站建设评比文章/sq网站推广
  • seo技术优化技巧/google移动服务应用优化
  • python做网站登录/西安百度公司地址介绍