如何在 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,但也无法让它工作。

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

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

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

您可以使用:

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

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

不要在这里使用[],它会创建一个向量

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

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

相关内容

  • 没有找到相关文章

最新更新