正如主题所说,模块是不可调用的,我也不是很清楚为什么。它来自类似帖子的(可能)不一样的问题,至少我不知道应该导入什么。我正在使用SymPy。
这是完整的错误文本:
Traceback (most recent call last):
File "C:\Users\Marek\Desktop\Bartłomiej\SymPy\PrimeTest.py", line 16, in <module>
if isinstance(evalf((n/p).subs(x, 1)), int):
TypeError: 'module' object is not callable
完整代码:
from sympy import *
import math
import sys
import mpmath
sys.modules['sympy.mpmath'] = mpmath
x, y = symbols(' x y ')
#p = sympfy(input(Check this: ))
p = 100
n = expand(((x-1)**p - (x**p - 1)))
print(n)
if isinstance(evalf((n/p).subs(x, 1)), int):
print("This number is a prime!")
else:
print("It is not a prime")
我正在尝试测试素数。 (x-1)^ p-(x ^ p-1),如果可以将其除以p并且p!= 1,则其为质数。我的代码质量不高,因为我将x更改为1,但我想检查一下是否可行。.
答案 0 :(得分:2)
我认为您使用的evalf()错误。
从我所见,应该是((n/p).subs(x, 1)).evalf()
https://docs.sympy.org/latest/modules/evalf.html
可能还有其他事情,请尝试一下。