この問題を解決しようとしています:
正の数 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)
2 つの異なるエラーが発生します。
これが私のコードです:
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.
、「range」の代わりに「xrange」を使用しようとすると、python int too large to convert to c long というエラーが表示されます。また、成功せずに他のいくつかのことを試しました。
正確な解決方法を教えずに、誰かが私を正しい方向に向けることができますか?
ネタバレはご遠慮ください。Python は初めてなので、次のオプションは Java でこれを実装してみることです。