2016-04-25 7 views
0

これはGP/Pariを初めて使用した時です。この質問を完了するのに問題があります。返された数値がGP/Pariの整数であるかどうかを確認しますか?

関数 'wq()'の戻り値が整数かどうかを確認するように求められます。渡された数値が整数かどうかを判断できる関数はありますか?チェックしないとどうやってチェックしますか?私は構文がやや難しく、オンラインで多くの情報を見つけることができません。

私がこれまで持っていたものを含めましたが、何か助けに感謝します。

wq(x) = 
{ 
    [(x-1)! + 1]/x 
} 

test(r,s) = 
{ 
    for (i=r, s, if(isinteger(wq(i)), print("integer"), print("not interger"))); 
} 
+0

数日前に非常に関連する質問がありました:[番号がPari/GPの整数であるかどうかをチェックする方法](http://stackoverflow.com/questions/36783151/) –

答えて

0

私が正しく理解していれば、あなたは(x-1)! + 1xの倍数であるかどうかを確認したいです。あなたはモジュロ演算であることを行うことができます。

あなたが使用することができます
test(r,s) = 
{ 
    for (i=r, s, if(Mod((i - 1)! + 1, i) == 0, 
     print("integer"), 
     print("not integer"))); 
} 
+0

ありがとう!私は私が定義したwq()関数を使って、これをどうやって行うことができるのだろうと思っています。私が完了しようとしている問題の一部は、ユーザー定義関数を使用して呼び出すことも学んでいます。私はmodの中でwq()を呼び出そうとしましたが、エラーが続いています。 –

0

wq(x) = 
{ 
    ((x-1)! + 1)/x 
} 

test(r,s) = 
{ 
    for (i=r, s, print(if(type(wq(i))=="t_INT", "integer", "not integer"))) 
} 

[]がここに有用ではありません行ベクトル(タイプt_VEC)を与えるので、私は()[]を変更しました。

wq(x) = 
{ 
    Mod((x-1)! + 1, x) 
} 

test(r,s) = 
{ 
    for (i=r, s, wq(i) && print1("not "); print("integer")) 
} 

機能print1プリントと同じ行の「滞在」:ここでは

はそれを書くために別の方法です。 'および'演算子 && "short-circuits"。セミコロン ;は、複数の式を1つの「シーケンス」にバインドします。

関連する問題