Текст подпрограммы и версий pa15r_c.zip |
Тексты тестовых примеров tpa15r_c.zip |
Решение уравнения Диофанта.
Подпрограмма pa15r_c вычисляет частное решение уравнения
a x + b y = c
в целых числах, где a, b и c - заданные целые числа, причем значения a и b не равны нулю.
int pa15r_c(integer *a, integer *b, integer *c, integer *q, integer *x, integer *y, integer *ierr)
Параметры
a, b, c - | заданные значения коэффициентов исходного уравнения, a ≠ 0, b ≠ 0 (тип: целый); |
q - | целый одномерный массив, длина которого должна быть в пять раз больше, чем количество цифр в максимальном по модулю из чисел a, b и c; |
x, y - | целые переменные, значения которых на выходе полагаются равными вычисленному частному решению исходного уравнения; |
ierr - | целая переменная, значение которой полагается равной признаку выявленной ошибки при счете; при этом: |
ierr=65 - | когда исходное уравнение не определено; |
ierr=66 - | когда решения исходного уравнения в целых числах не существует. |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void) { /* Local variables */ extern int pa15r_c(int *, int *, int *, int *, int *, int *, int *); static int ierr, a, b, c__, q[5], x, y; a = 1; b = 3; c__ = 4; pa15r_c(&a, &b, &c__, q, &x, &y, &ierr); printf("\n %5i \n", ierr); printf("\n %5i %5i \n", x, y); return 0; } /* main */ Результаты: ierr = 0 x = 1 y = 1