给一个 n > 1的正数,找到n的因子分解。结果是一个具有以下形式的字符串: "(p1**n1)(p2**n2)...(pk**nk)" 举个例子 n = 86240 should return "(2**5)(5)(7**2)(11)" 思路分析 n == 1, 返回自身 写一个for 循环, 这个 循环应该从2开始, 已 n+1 结束, 原因是range是前闭后开区间 写一个死循环,去检测, 余数是不是0, 以及当前的因子, 出现的次数 拼接最后的结果 给出答案 def primeFactors(n): res = '' for i in range(2, n + 1): number = 0 while(n % i == 0): number += 1 n /= i if number > 0: res += '({}{})'.format(i, '**%d' % number if number > 1 else '') if n == 1: return res 进一步讨论 # 这个题主要是考察了, 循环的知识点, 如何求余, 字符串拼接, 这一题的难点,在于如何对数字进行分解的思考, 一定要学会复杂的东西细节化,才能做出这种题。