数字因子分解

2019-01-03  本文已影响0人  __apple

给一个 n > 1的正数,找到n的因子分解。结果是一个具有以下形式的字符串:

"(p1**n1)(p2**n2)...(pk**nk)"

举个例子

n = 86240 should return "(2**5)(5)(7**2)(11)"

思路分析

给出答案

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

进一步讨论

# 这个题主要是考察了, 循环的知识点, 如何求余, 字符串拼接, 这一题的难点,在于如何对数字进行分解的思考, 一定要学会复杂的东西细节化,才能做出这种题。
上一篇 下一篇

猜你喜欢

热点阅读