检查返回的数字是否为GP / Pari中的整数?

时间:2016-04-25 01:08:59

标签: unix pari pari-gp

这是我第一次使用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")));
}

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您想检查(x-1)! + 1x的倍数。您可以使用模运算来执行此操作:

test(r,s) =
{
    for (i=r, s, if(Mod((i - 1)! + 1, i) == 0, 
         print("integer"), 
         print("not integer")));
}

答案 1 :(得分:0)

您可以使用:

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

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

我将[]更改为(),因为[]提供了行向量(类型t_VEC),这在此处没用。

这是另一种写作方式:

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

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

函数print1打印并且"保持"在同一条线上。 '和'运算符&& "short-circuits"。分号;将几个表达式绑定到一个"序列"。