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到该数字的平方根的所有数字,检查是否有数字能够整除该数字。如果没有,则该数字是质数。
该代码定义了两个函数,count_zy和is_prime。count_zy函数遍历2到num的数字,检查它们是否为num的约数且为质数,或者num除以这些约数的商是质数。is_prime函数用于判断一个数是否为质数。最终,程序接收用户输入的数字,输出其质因数的个数。
2214

被折叠的 条评论
为什么被折叠?



