Binary Trees With Factors LeetCode solution in Python
1class Solution:2def numFactoredBinaryTrees(self, nums: List[int]) -> int:3nums = set(nums)4n = len(nums)56@lru_cache(None)7def helper(num):8trees = 19for factor in nums:10if not num % factor and num // factor in nums:11trees += helper(factor) * helper(num // factor)1213return trees1415return sum(helper(num) for num in nums) % (10**9 + 7)