美文网首页
数字因子分解

数字因子分解

作者: __apple | 来源:发表于2019-01-03 14:22 被阅读0次

给一个 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

进一步讨论

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

相关文章

  • 数字因子分解

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

  • 范式组件03

    深度因子分解机(DeepFM)模型 深度因子分解机(Deep Factorization Machine,Deep...

  • 2019-10-16

    昨天写了整数因子分解。

  • Latent Semantic Indexing

    线性代数回顾 矩阵分解(matrix decomposition):将方阵分解成多个矩阵因子,并且这几个矩阵因子都...

  • 素数因子分解

    原创 给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p​1​​​k​1​​​​⋅p​2​​​...

  • L1_006连续因子

    一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为356*7,其中5、6、7就是3个连续的数字。给定...

  • L1-006. 连续因子(思想较为复杂)

    一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为356*7,其中5、6、7就是3个连续的数字。给定...

  • 【抽象代数】因子分解与域的扩展

    因子分解与域的扩展 一、因子分解 我们知道,整数环中的每一个合数都可以唯一地分解成素数的乘积; 域 F 上每个次数...

  • FM算法

    FM算法(Factorization Machine) 因子分解机(Factorization Machine, ...

  • 质因子分解(素数埃氏筛法)[PAT A1059]

    埃氏筛法原理质因子分解结论

网友评论

      本文标题:数字因子分解

      本文链接:https://www.haomeiwen.com/subject/nbrtrqtx.html