找出一个正整数中所有质数因子的个数

问题遇到的现象和发生背景

我已经写好了找出一个正整数中所有的因子的个数和确定一个数是不是质数的代码
现在想要写一个找出一个正整数所有质数因子的个数的代码(count_prime_factors(n)应该返回n中也是质数的因子的数量(同样,包括数字本身)。这意味着,如果n是一个质数,count_prime_factors(n)必须总是返回1,因为n只有两个因子(1和n),而且其中只有一个(n)是质数。)

问题相关代码,请勿粘贴截图

def count_factors(n):
i = 1
number_of_factors = 0
while n >= i:
if n % i == 0:
number_of_factors = number_of_factors + 1
i = i + 1
return number_of_factors

def is_prime(n):

return count_factors(n) == 2

def count_prime_factors(n):
这里不会

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

你题目的解答代码如下:

def count_factors(n):
    i = 1
    number_of_factors = 0
    while n >= i:
        if n % i == 0:
        number_of_factors = number_of_factors + 1
    i = i + 1
    return number_of_factors

def is_prime(n):
    return count_factors(n) == 2

def count_prime_factors(n):
    i = 2
    number = 0
    while n >= i:
        if n % i == 0 and is_prime(i):
        number += 1
    i = i + 1
    return number




如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

如果只是求质数个数的话,这样就行了啊。

num = int(input())
count = 0
for i in range(2,num+1):
    if num%i==0:
        count=count+1
print(count)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632