**

求一个数的最小素数因子序列

**


  • 如 120 = 22235,其中2, 2,2,3,5就是120 的最小素数因子 90 = 233*5
    ,其中2,3,3,5 就是90 的最小素数因子

具体思路是:

  1. 计算出该数字的所有质数因子
def isPrime(n):  #判断一个大于1的整数是否是素数,返回值为True和Falseisprime = Truefor i in range(2,n):if n % i == 0:isprime = Falsebreakreturn  isprime
lsPrimeDivisor = [ ]  #所有素数因子列表
for i in range(2,num//2+1):if num%i==0 and isPrime(i):lsPrimeDivisor.append(i)

2.使用连续除法方法,求出最小素数因子序列,以120为例:
3.主函数:

#以下为主函数
num = eval(input("输入一个整数:"))lsPrimeDivisor = [ ]  #所有素数因子列表
for i in range(2,num//2+1):if num%i==0 and isPrime(i):lsPrimeDivisor.append(i)print(lsPrimeDivisor[0], end="")  #逗号间隔思路,先提前打印一个不换行
num = num / lsPrimeDivisor[0]
i = 0
while i<len(lsPrimeDivisor):  #打印所有最小因子if num % lsPrimeDivisor[i] == 0:  #判断最小素数因子print(",",lsPrimeDivisor[i], end = "")  #先打逗号后打值num = num / lsPrimeDivisor[i]  #当除数能被当前素数因子整除时,求其整除的商作为下次迭代的除数#print(num)else:  #当商不能被当前素数因子整除时,换下个素数因子i += 1

4.完整代码

def isPrime(n):  #判断一个大于1的整数是否是素数,返回值为True和Falseisprime = Truefor i in range(2,n):if n % i == 0:isprime = Falsebreakreturn  isprime#以下为主函数
num = eval(input("输入一个整数:"))lsPrimeDivisor = [ ]  #所有素数因子列表
for i in range(2,num//2+1):if num%i==0 and isPrime(i):lsPrimeDivisor.append(i)print(lsPrimeDivisor[0], end="")  #逗号间隔思路,先提前打印一个不换行
num = num / lsPrimeDivisor[0]
i = 0
while i<len(lsPrimeDivisor):  #打印所有最小因子if num % lsPrimeDivisor[i] == 0:  #判断最小素数因子print(",",lsPrimeDivisor[i], end = "")  #先打逗号后打值num = num / lsPrimeDivisor[i]  #当除数能被当前素数因子整除时,求其整除的商作为下次迭代的除数#print(num)else:  #当商不能被当前素数因子整除时,换下个素数因子i += 1

5.课后答案:

# Prompt the user to enter a positive integer
number = eval(input("Enter a positive integer: "))# Find all the smallest factors of the integer
print("The factors for " + str(number) + " is ", end = "")
factor = 2
while factor <= number:if number % factor == 0:number = number / factorprint(factor, end = " ")else:factor += 1

6.总结:
解题思路很重要

求一个数的最小素数因子序列相关推荐

  1. 求一个数的最小素因子外加快速分解质因子

    这种方法使用与数据小于1e7, 这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的 首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1 如果是分解单个还是根号n复杂度的更好 ...

  2. c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  3. 【面试题视频讲解】求一个数的所有质因子

    P2求一个数的所有质因子 https://www.bilibili.com/video/av91892983?p=2

  4. 求两个数的最小公约数和最小公倍数

    题目: 求两个数的最小公约数和最小公倍数 思路: 求最大公约数: 欧几里得在其<几何原本>中提出的欧几里得算法,有称辗转相除法,  具体做法是如果q和r分别是m除以n的商及玉树,m=nq+ ...

  5. 数组求最大公约数c语言,C语言辗转相除法求2个数的最小公约数

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  6. python求一个数的因子_求一个整数的所有素数因子的思路是什么?

    用筛法. 我们仅考虑分解奇数.(原因?) 现在我们可以假设n=pq,pq必可写作(x+y)(x-y) 也即我们需要找到 x²≡y² (mod n) 我们可以考虑,在 kn 附近的完全平方数 x² 中, ...

  7. python双素数_Python编程:筛法求两个数之间的素数

    要求计算最多10组,每组由两个数m,n构成(1<=m<=n<=1000000000,n-m<100000),要求打印出m,n之间的所有素数(包括m,n),时间限制6s.下面是我 ...

  8. python求三个数中最小(大)的元素

    求最小: def getThreeNumberMin(x,y,z):min=x if x<y else ymin=min if min<z else zreturn min a=getTh ...

  9. 求两个数之间的素数和

    题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的 ...

最新文章

  1. 高德地图哪个语音包最好_高德地图妲己语音
  2. android 的view绘制逻辑
  3. php用存储过程插入数据,如何使用php-webservice使用android中的存储过程将数据插入sql数据库[duplicate]...
  4. linux内核设计与实现看不懂,Linux内核设计与实现读书笔记
  5. php MySQL定义,PHP + MySQL用户定义函数
  6. Android2D绘图二
  7. C++基础知识总结----类的进阶知识点
  8. 如何进入Dos窗口以及了解常用Dos命令
  9. gmp新附录 计算机系统,GMP新附录:计算机系统.doc
  10. 修改dataV轮播表背景图
  11. 【EntityFramework CodeFirst 】错误解析:LINQ to Entities does not recognize the method ToString
  12. 支付宝木马安卓短信窃取者分析
  13. IDEA环境下yml文件不显示小绿叶(不被识别为配置文件)
  14. windows7打不开html文件格式,mht是什么文件?Win7打不开mht格式文件的解决办法
  15. c语言编译器提示隐式声明,在C中使用“隐式声明功能”警告有什么含义?
  16. java之等差素数的求法
  17. ESP8266-Arduino编程实例-TEMT6000环境光传感器驱动
  18. 肠道菌群与睡眠的双向桥接
  19. python数据分析入门学习笔记
  20. 病毒木马查杀实战第023篇:MBR病毒之引导区的解析

热门文章

  1. bugku 做个游戏
  2. 利用python和matlab求解简单的线性规划问题
  3. Win10搭建星际争霸2SC2LE环境
  4. windows7 旗舰版 IIS设置
  5. JS错误:Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure 新的问题
  6. 入驻京东MCN机构详细流程
  7. 复制浏览器控制台数据的小技巧
  8. Navicat:设置Oracle数据库主键自增
  9. 广州计算机应用技术研究所,「广州中科院软件所」
  10. python统计英文单词出现次数并把结果生成字典