0

sage で素数の双子を生成する python プログラムを作成しようとしました。

しかし、私はそれを機能させることができないようです。

コード: http://pastebin.com/PRnvJsf3

Sage から次のエラー メッセージが表示されます。

Traceback (most recent call last):    y = 1
  File "", line 1, in <module>

  File "/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp8b0dCT/___code___.py", line 19
    while s1[y] < s1[len(s1)]
                            ^
SyntaxError: invalid syntax

不足しているコロンを入れていただきありがとうございます。

今私は得る

トレースバック (最新の呼び出しが最後): y = 1 ファイル ""、1 行目、

ファイル "/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmpEIEhQs/ code .py"、19 行目の if (s1[k] + s1[y]) == ((s1 [k] + (s1[k] + _sage_const_2 )): ^ SyntaxError: 無効な構文

ありがとう、不足している括弧も入れました

今私は得る

トレースバック (最新の呼び出しが最後): y = 1 ファイル ""、1 行目、

ファイル "/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp9RE23a/ code .py"、18 行目、while s1[y] < s1[len(s1)]: IndexError : リスト インデックスが範囲外です

うーん、ここでは len(s1) を使用できないと思います。

どうもありがとう、それは今働いています

while s1[y] < s1[len(s1) - 1]:

でも、

s2 = s2 + s1[k] は有効なコードではないようです。

次のエラーが表示されます

トレースバック (最新の呼び出しが最後): y = 1 ファイル ""、1 行目、

ファイル "/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp3tx5on/ code .py"、20 行目、s2 = s2 + s1[k] ファイル "element.pyx"、 sage.structure.element.RingElement の 1525 行目。(sage/structure/element.c: 13476 ) ファイル「coerce.pyx」、行 797、sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/structure/coerce.c:7678) TypeError: サポートされていないオペランドの親(s ) '+': '' および 'Integer Ring' の場合

本当にありがとう

最後の問題を見つけた

私は使用する必要があります、今それは働いています!

s2 = s2 + [s1[k]]

4

1 に答える 1

2

次の行の括弧のバランスが取れていません。

if (s1[k] + s1[y]) == ((s1[k] + (s1[k] + 2)):

の使用にも気付きましたx.is_prime()。それが Sage のものかどうかはわかりませんが、私のスタンドアロンの Python インタープリターにはint.is_prime()メソッドがありません。

最後に、のインデックスは 0 から まで実行されるため、s1[len(s1)]常にIndexError例外を発生させます。s1len(s1)-1

于 2012-11-28T07:04:53.933 に答える