0

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

2 回答 2

0

如果我理解正确,您想检查是否(x-1)! + 1x. 您可以使用模运算来做到这一点:

test(r,s) =
{
    for (i=r, s, if(Mod((i - 1)! + 1, i) == 0, 
         print("integer"), 
         print("not integer")));
}
于 2016-04-25T01:22:57.217 回答
0

您可以使用:

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

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

我改成[]since()给出了一个在这里[]没用的行向量(type )。t_VEC

这是另一种写法:

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

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

该函数print1打印并“停留”在同一行。'and' 运算符&& “短路”。分号;将几个表达式绑定到一个“序列”中。

于 2016-04-28T21:39:22.067 回答