试图解决这个问题:
对于正数 n,将 S(n) 定义为整数 x 的和,其中
1 < x < n
和x^3 ≡ 1 mod n
。当 时
n=91
,x 有 8 个可能的值,即:9、16、22、29、53、74、79、81。因此,S(91)=9+16+22+29+53+74+79+81=363
。找到 S(13082761331670030)。
当然,我的代码适用于S(91)
并且在尝试查找时S(13082761331670030)
出现两个不同的错误。
这是我的代码:
def modcube(n):
results = []
for k in range(1,n):
if k**3%n==1:
results.append(k)
return results
这会产生Overflow error: range has too many items.
当我尝试使用“xrange”而不是“range”时,我收到一条错误消息,指出 python int 太大而无法转换为 c long。我也刚刚尝试了其他几件事,但没有成功。
谁能指出我正确的方向,而不告诉我确切的解决方法?
请不要剧透。我已经做了两天了,我的下一个选择是尝试在 Java 中实现它,因为我是 Python 新手。