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

If statement 如何检查Pari/GP中的数字是否为整数?,if-statement,math,factorial,pari,pari-gp,If Statement,Math,Factorial,Pari,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是否为整数。分母就

我想写一个像这样的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,但也没能起作用。

你似乎对
x
I
的名字感到困惑。 请确保下面的表达式正常工作:

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

您似乎对名称
x
i
感到困惑。 请确保下面的表达式正常工作:

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

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

我不确定错误是什么,但我最终使用floor函数来确定它是否为整数。

您可以使用:

print(if(((i-1)! + 1) % i, "hi", "ho"))
如果
i
(在你的问题
x
中)不是整数,你会从
中得到一个错误(阶乘)运算符(但也请参见
gamma

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

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

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

你可以使用:

print(if(((i-1)! + 1) % i, "hi", "ho"))
如果
i
(在您的问题
x
中)不是整数,则
(阶乘)运算符会产生错误(但也请参见
gamma

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

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

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