【问题标题】:Implementing Thabit's amicable number theorem in python (Project Euler #21) [duplicate]在 python 中实现 Thabit 的友好数定理(Project Euler #21)[重复]
【发布时间】:2022-01-09 13:57:32
【问题描述】:

对于项目 Euler 问题 21,我正在尝试实现 Thabit 定理,使用此函数获取 PQR 值:

def getPQR(n): 
  pqr = []

  p = (3 * 2^(n - 1) - 1)
  pqr.append(p)

  q = (3 * 2^n) - 1
  pqr.append(q)

  r = (9 * 2^((2*n) - 1) - 1)
  pqr.append(r)

  return pqr 

对于 n = 2,函数应该返回 [5, 11, 71],但它反而返回 [6, 3, 16]

对于我所缺少的任何帮助将不胜感激!谢谢!

【问题讨论】:

    标签: python


    【解决方案1】:

    ^ 是 Python 中的位运算符。 ** 是您正在寻找的运算符 - 将底数提高到指数。

    所以,你可以这样修改你的代码:

    def getPQR(n): 
      pqr = []
    
      p = (3 * 2**(n - 1) - 1)
      pqr.append(p)
    
      q = (3 * 2**n) - 1
      pqr.append(q)
    
      r = (9 * 2**((2*n) - 1) - 1)
      pqr.append(r)
    
      return pqr
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2012-10-11
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多