2016-04-22 53 views
0

我想if語句這樣如何檢查數字是Pari/GP中的整數?

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是整數或不分母的事情是什麼,我想出了,我也試過國防部,但不能得到那工作要麼。

回答

2

看來你很困惑名稱xi。 請參見下面的表達正常工作:

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

我不知道是什麼錯誤,但我最終使用地板函數來確定,如果它是一個整數或沒有。

0

你可以使用:

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

如果i(你的問題x)不是整數,你從!(階乘)運算錯誤(但看到gamma爲好)。

這裏不要使用[],它會創建一個載體。我使用的處理器%給出餘數。例如,11 % 4給出整數3。比較Mod(11, 4)不是普通整數,它是環Z/4Z(整數模4)的成員。這在很多情況下非常有用。

我想你想寫出字符串,所以我用引號"。如果hi和ho是變量,當然省略引號。

相關問題