python将一个正整数分解成质因数,用python分解质因数
例如:
描述问题,求区间[a,b]内所有整数的质因数分解。
输入格式输入两个整数A,b。
输出格式每行输出一个数的分解,比如k=a1a2a3…(a1=a2=a3…,K也是从小到大)(详见示例)
实施例3 10
样本3=3
4=22
5=5
6=23
7=7
8=222
9=33
10=25
1.想法。先计算区间[a,b]的所有素数,用列表素数保存。
2.遍历区间[a,b],用数I依次求余数质数中的质数。如果余数=0,则意味着已经找到一个并存储在数据结构中。求余数rest=I/质数。如果剩下的都是质数,就不需要继续找了,比如10=2 * 5。如果不是,继续递归搜索rest。
3.最后,找到一个数的素数组合后,控制输出。
Python实现#判断素数def is prime(num):if Num 1:for I in range(2,Num):ifnum % I==0:return false return true else:return false #判断素数相乘的条件是否满足def satisfy(num2,c):for j in prime:if Num 2% j==0:satisfy _ Num[c]=str(j)Num 3=int(Num 2/j)if Num 3 1:if Num 3 in prime:satisfy _ Num[c 1]=str(Num 3)break else:satisfy(Num,Numsplit()prime=[]for i in range(2,int(b)1):if is prime(I):prime . append(I)for I in range(int(a),int(b)1):satisfy _ number={ } strline= { }= satisfy(I,0) for j in range(0,len(satisfy _ number)-1):strline=strline satisfy _ number[j] * strline=strline satisfy _ number[len(satisfy _ number)-1]Print(strline . format(I))输入495=5 * 1996=2 * 2 * 2 * 2 * 397=9798=2 * 7 * 799=3 * 3 * 1100=2 * 2 * 5 * 5.如果这篇论文有问题,或者有模糊的砖块,对学生还是比较好的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。