2016-04-22 2 views
0

は、私はそれがこのエラーを与えるi 10に設定した場合、例えば10の任意の整数を指定でき、この数がPari/GPの整数であるかどうかを確認するには?

if(denominator([(i-1)! + 1]/i)-1,print(hi),print(ho)) 

iのようなif文を記述しようとしています。

? [(x-1)! + 1]/x 
    *** this should be an integer: [(x-1)!+1]/x 
            ^----------- 

私は本当に唯一[(x-1)! + 1]/xが整数であるかどう分母の事は私が思いついたものですチェックする必要があり、私はまた、モッズを試みたが、いずれかの作業を得ることができませんでした。

答えて

2

名前xiと混同しているようです。

i = 10; 
print([(i-1)! + 1]/i); 
gp > [362881/10] 
0

私はエラーが何であったかわからないが、私はそれが整数だったかではないかどうかを決定するための床関数を使用して終了: 、以下の発現が正常に動作ご覧ください。

0

あなたは使用することができます

print(if(((i-1)! + 1) % i, "hi", "ho")) 

i(あなたの質問x中)が整数でない場合、あなたは!(階乗)オペレータからエラーが出ます(が、同様にgammaを参照してください)。

ここで[]を使用しないでください。ベクターが作成されます。

私が使用したopreator %は残りを与えます。例えば、11 % 4は整数3を与えます。対照的に、Mod(11, 4)は通常の整数ではなく、リングZ/4Z(4を法とする整数)のメンバーです。これは多くの場合非常に便利です。

文字列を書きたいと思っていたので、引用符を使用しました"。 hiとhoが変数の場合は、もちろん引用符は省略してください。

関連する問題