如何返回一个数字的所有质因数?

如何返回一个数字的所有质因数?

如何判断一个数字n是否是质数?

1)如果该数n小于等于1,则False;不是质数,因为1不是质数,但是1和其他所有数都是互质的;

2)然后i从2开始,依次判断到sqrt(n)  【数字的平方根的数字】,如果这些数字都不能被n整除,换句话说有余数,则说明n是质数;

i = 2

while i*i <= n:

        if n%i == 0: return False

        i += 1

return True

要测试一个数字是否为质数,为什么我们必须测试该数字是否只能被该数的平方根整除?

精彩 分析的非常精彩。

如果n不是质数,那么n可以分解成a*b,a和b至少有一个应该是小于sqrt(n)的 ,如果两个都大于sqrt(n)那么两者相乘之后,一定大于n。所以,从2到sqrt(n)一定有一个n的因数,如果找不到这样的因数,说明n是质数;

判定一个数是不是质数

def isPrim(n):
    if n <= 1: return False
    i = 2
    while i*i < n:
        if n%i == 0: return False
    return True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值