.\" Copyright 2026 Andrew V.Kosteltsev (kx@radix-linux.su) .\" .\" .TH igcd 3 "September 14, 2026" "libmpu" "LibMPU Programmer's Manual" .SH NAME \fBigcd\fP \- наибольший общий делитель беззнаковых целых чисел .SH SYNOPSIS .nf .B #include .PP .BI "void igcd( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );" .fi .SH DESCRIPTION Функция \fBigcd()\fP вычисляет наибольший общий делитель (НОД) беззнаковых целых чисел, расположенных по адресам \fBa\fP и \fBb\fP, и размещает результат по адресу \fBc\fP. Для вычисления используется алгоритм Евклида. Содержимое памяти по адресам \fBa\fP и \fBb\fP не изменяется. Параметр \fBnb\fP определяет размер всех операндов в байтах. .PP Принята следующая семантика для нулевых операндов: .nf .sp gcd(0, b) = b gcd(a, 0) = a gcd(0, 0) = 0 .fi .PP Перед выполнением операции целочисленные флаги очищаются. Флаг \fBZ\fP выставляется, если результат равен нулю. .sp .SH EXAMPLES .nf .sp #include #include int main( void ) { mpu_int1024_t c, a, b; int nb = NB_I1024; __mpu_char8_t s[4096]; __mpu_init(); iatoui( a, "56", nb ); iatoui( b, "32", nb ); igcd( c, a, b, nb ); iuitoa( s, c, RADIX_DEC, LOWERCASE, nb ); printf( "c = %s;\\n", s ); /* c = 8; */ __mpu_free_context(); return( 0 ); } .fi .sp .SH SEE ALSO .BR iadd(3), .BR isub(3), .BR iadc(3), .BR isbb(3), .BR ineg(3), .BR inot(3), .BR iand(3), .BR itest(3), .BR icmp(3), .BR ior(3), .BR ixor(3), .BR iinc(3), .BR idec(3), .BR ixchg(3), .BR icpy(3), .BR icvt(3), .BR imul(3), .BR ismul(3), .BR idiv(3), .BR isdiv(3), .BR iatoi(3), .BR iatoui(3), .BR iitoa(3), .BR iuitoa(3), .BR _int_digs(3), .BR ibits_len(3), .BR ilcm(3), .BR imod(3), .BR imul_mod(3), .BR ipow_mod(3), .BR ipowm1_mod(3), .BR shifts(3), .BR shifts\-n(3), .BR circular\-shifts(3), .BR circular\-shifts\-n(3), .BR integer\-flags(3), .BR real\-flags(3), .BR libmpu(7).