0

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")));
}
4

2 に答える 2

0

以下を使用できます。

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

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

ここでは役に立たない行ベクトル( type )を与えるので、に変更[]しました。()[]t_VEC

別の書き方を次に示します。

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

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

この関数print1は同じ行に表示され、「とどまります」。「and」演算子は&& 「短絡」します。セミコロン;は、複数の式を 1 つの「シーケンス」にバインドします。

于 2016-04-28T21:39:22.067 に答える
0

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

test(r,s) =
{
    for (i=r, s, if(Mod((i - 1)! + 1, i) == 0, 
         print("integer"), 
         print("not integer")));
}
于 2016-04-25T01:22:57.217 に答える