Как проверить, является ли число целым числом в пари /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 это целое число или нет, знаменатель, это то, что я придумал, я также попробовал мод, но тоже не смог заставить его работать.

3 ответа

Похоже, вас смущают имена x а также i, Пожалуйста, обратите внимание, что приведенное ниже выражение работает правильно:

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 - переменные, конечно, опустите кавычки.

Я не уверен, что это была за ошибка, но я использовал функцию пола для определения, было ли это целое число или нет.

Другие вопросы по тегам