【问题标题】:Python equivalent to radical() in Sage?Python 相当于 Sage 中的激进()?
【发布时间】:2015-04-14 16:33:02
【问题描述】:

我正在编写一些代码来生成满足 ABC 猜想且小于给定质量且在指定整数范围内的三元组的数量。我最初是在 Sage 中编写代码的,它内置了一个 Radical() 函数。

我现在需要想办法在 Python 中执行相同的任务,而我目前还无法做到。

关于构建激进函数的任何建议或资源建议,即给定一个整数将输出该整数的最大无平方除数?

【问题讨论】:

  • Sage 是用 Python 和 GPL 许可编写的。为什么不从 Sage 中提取相关代码? github.com/sagemath/sage
  • @JonathanMarch:没那么容易。要计算根式,您需要对数字进行因式分解。 Sage 不会自己进行此计算,而是将问题委托给某个外部包(默认为 Pari-GP)。
  • FWIW 使用 numpy 切片通过筛子非常有效地构建素数列表非常简单。

标签: python enthought sage number-theory


【解决方案1】:

这是一个老问题,但对于来自 Google 或其他地方的任何有同样问题的人来说:

SymPy 有一些类似于 Sage 的根式函数(找到数字 n 的无平方部分),您可以使用 sympy.ntheory.factor_.core(n, t=2)

如文档here中所述:

计算core(n, t) = coret(n) 的正整数n

因此,core(n, 2) 为您提供与 Sage 中的 radical(n) 相同的功能

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2016-05-08
    • 2011-06-05
    • 2012-08-25
    • 2022-01-14
    • 2019-07-14
    • 2012-05-27
    相关资源
    最近更新 更多