求一个数的质因数个数

该代码定义了两个函数,count_zy和is_prime。count_zy函数遍历2到num的数字,检查它们是否为num的约数且为质数,或者num除以这些约数的商是质数。is_prime函数用于判断一个数是否为质数。最终,程序接收用户输入的数字,输出其质因数的个数。
摘要由CSDN通过智能技术生成
def count_zy(num):
    count=0
    i=2
    while i*i<=num:
        if num%i==0:
            # 如果一个数是num的约数,并且也是质数,则count+1
            if is_prime(i):            
                count+=1
            # 如果num/i是num的约数,并且也是质数且和i不相等,count+1
            if is_prime(num//i) and num//i!=i :
                count+=1
        i+=1
    # 如果本身也是质数,则count+1
    if is_prime(num):       
        count+=1
    return count

# 判断是否为质数
def is_prime(num):
    if num<2:
        return False
    else:
        i=2
        while i*i<=num:
            if num%i==0:
                return False
            i+=1
        return True

num=int(input())
count=count_zy(num)
print(count)

这个代码中,count_zy函数首先遍历从2到num的所有数字。对于每个数字i,如果它是num的约数,那么就判断i是否是质数。如果是,那么计数器就会增加1。同时,如果num除以i的商是num的约数,并且该商是质数,并且i和商不相等,那么计数器也会增加1。最后,如果num本身是质数,则计数器也会增加1。

is_prime函数用于判断一个数字是否是质数。它遍历从2到该数字的平方根的所有数字,检查是否有数字能够整除该数字。如果没有,则该数字是质数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值