Текст подпрограммы и версий ( Фортран )
pa13i.zip 
Тексты тестовых примеров ( Фортран )
tpa13i.zip 
Текст подпрограммы и версий ( Си )
pa13i_c.zip 
Тексты тестовых примеров ( Си )
tpa13i_c.zip 
Текст подпрограммы и версий ( Паскаль )
pa13i_p.zip 
Тексты тестовых примеров ( Паскаль )
tpa13i_p.zip 

Подпрограмма:  PA13I

Назначение

Разложение полинома с целыми коэффициентами на линейные множители с целыми коэффициентами.

Математическое описание

Пусть задан полином степени N с целыми коэффициентами:

             A1 XN + A2 XN-1 + ... + AN X + AN+1

Подпрограмма PA13I находит M линейных множителей  Ui x + Vi,  i = 1, 2, ..., M,  с целыми коэффициентами, а также наибольший общий делитель C коэффициентов  Ai,  i = 1, 2, ..., N + 1.

Сначала находятся все делители P коэффициента A1 и все делители Q коэффициента  AN . Затем составляются всевозможные пары из найденных P и Q и проверяется, не является ли двучлен PX - Q множителем исходного полинома. Значения коэффициентов  Ai  не сохраняются.

Использование

    SUBROUTINE  PA13I (A, N, U, V, M, C) 

Параметры

A - целый одномерный массив длины N + 1, в котором задаются коэффициенты исходного полинома в порядке убывания степеней; исходные значения массива A не сохраняются;
N - заданная степень исходного полинома (тип: целый);
     U, V - целые одномерные массивы длины N, в которых размещаются вычисленные коэффициенты всех линейных множителей;
M - целая переменная, значение которой полагается равной количеству найденных линейных множителей;
C - целая переменная, значение которой полагается равной наибольшему общему делителю коэффициентов исходного полинома.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

       INTEGER  A(4), U(4), V(4), C 
       DATA  A /6, -58, 156, -80/ 
       N = 3 
       CALL  PA13I (A, N, U, V, M, C) 

Результаты: 

        U = (1, 1, 3) 
        V = (4, 5, 2) 
        M = 3 
        C = 2