如何检查Pari / GP中的数字是否为整数?

时间:2016-04-22 01:26:32

标签: unix if-statement math factorial pari-gp

我试图写一个像这样的if语句

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

i可以是任何整数,例如10,当我将i设置为10时会出现此错误。

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

我真的只需要检查[(x-1)! + 1] / x是否是一个整数,或者不是我想出的分母是什么,我也试过 Mod 但是无法正常工作任

3 个答案:

答案 0 :(得分:2)

您似乎对名称xi感到困惑。 请看下面的表达式正常工作:

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

答案 1 :(得分:0)

我不确定错误是什么,但我最终使用了一个底层函数来确定它是否是一个整数。

答案 2 :(得分:0)

您可以使用:

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

如果i(在您的问题x中)不是整数,则会从!(阶乘)运算符中收到错误(但请参阅gamma

此处不要使用[],它会创建向量

我使用的opreator %给出了其余部分。例如,11 % 4给出整数3。相比之下,Mod(11, 4)不是普通的整数,它是环Z / 4Z的成员(整数模4)。这在许多情况下非常有用。

我猜你想要写出字符串,所以我使用了引号"。如果hi和ho是变量,当然要省略引号。