首页 > 解决方案 > 如何隔离“n”以下的每个连续变量?

问题描述

## Helper
def is_factor (n, d = 1): ## trying to see if each consecutive number below n is a factor of n.
  if (n == 1) or (n % d == 0):
    return True
  if n % d != 0:
    return False
  else:
    return is_factor (n, d + 1)

def is_prime (n, d = 2): ## trying to see if it is a prime number, once it evaluated if it is a factor
  if (d == n) or (n == 2): 
    return True
  if n % d == 0:
    return False
  else:
    return is_prime(n, d + 1)

## Main
def total_prime_factors (n):
  if n == 1:
    return 0
  if is_factor(n) == is_prime (n):
    return 1 
  else:
    return total_prime_factors (n-1)

标签: python

解决方案


您可以使用sympy模块列出给定数字的所有质因数:

from sympy import primefactors

print(len(primefactors(10)))

输出:

2

推荐阅读