0

私はpari/gpが初めてです。factorint私はすべての素因数を見つけるために使用し、行列を返します。内部の最大数を見つけるために行列を走査しようとしていますが、行と列の長さを見つけることができません。また、if を使用して各要素が高いか低いかを比較するにはどうすればよいですか。私pは上に生成されています。

temp = factorint(p-1);
num = 0;
for(i=1, size,
    for(j=1, size,
        if(num <= temp[i,j], num = temp[i,j]);
    );
);

print("number is = "  num);

前もって感謝します。

4

2 に答える 2

1

factorint(p)は常に nx2 行列を返すことに注意してください。ここnで、 は の素因数の数ですp。最初の列は素因数です。2 番目の列はそれらの多重度です。

したがって、必要なのは、最初の列の最大要素を見つけることだけです。次のように実行できます。

factors = factorint(p-1);
print("number is = ", vecmax(factors[, 1]));

ちなみにベクトルの長さはPARI/GPvでジャストです。#v

于 2016-05-11T08:08:17.093 に答える