2016-05-10 1 views
0

Я новичок в pari/gp. Я использую factorint, чтобы найти все основные факторы и возвращает матрицу. Я пытаюсь пройти через матрицу, чтобы найти наибольшее число внутри, но не могу найти длину строк и столбцов. Также как я могу использовать if, чтобы сравнить каждый элемент выше или ниже. Мой p генерируется сверху.PARI/GP: Как получить максимальный основной коэффициент целого?

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); 

Заранее спасибо.

ответ

1

Обратите внимание: factorint(p) всегда возвращает nx2-матрицу, где n - это число основных коэффициентов для p. Первый столбец - для основных факторов. Второй столбец - для их кратностей.

Так что вам нужно только найти максимальный элемент первого столбца. Это может быть сделано следующим образом:

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

Кстати, длина вектора v только в PARI/GP #v.

+0

Может ли случиться, что max prime не является номером в последней строке? Тогда могут использоваться факторы [matsize (факторы) [1], 1] '. –

Смежные вопросы