【质因数分解】

把一个数分解为质因数相乘

90=2x3x3x5, 其中2、3、5都是质数。

本题的一般思路是将输入的这个数从2开始做循环进行尝试,如果找到因数,再进行判断这个数是不是质数,如果是就算质因数,接着进行下一次尝试查找。

但细思之后你就会发现,从2开始尝试,第一个找到的因数肯定是质因数,因为如果不是质因数,一定会有比它小的因数会提前找到。所以编程的思路就变得简单。所以不用判断其是不是质数!!!!!

def decompose(n):
	res=[]
	i=2
	while i<=n:
		if n%i==0:
			res.append(i)
			n=n/i
		else:i+=1
	return res
print(decompose(5))

注意,循环的条件一定是i<=n , 而不是i*i<=n。因为i为要求的n的一个因数,如果n=6,i=3,此时i满足条件,但因为3*3=9,无法进入循环

质数判断

def jude(n):
	if n==1:return False#1不是质数
	i=2
	while i*i<=n:
		if n%i==0:
			return False
		i+=1
	return True
n=51
print(jude(n))
def jude(n):
	if n==1:return False#1不是质数
	for i in range(2,n):
		if n%i==0:
			return False
	return True
n=1
print(jude(n))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值