最大公约数递归


#include <stdio.h>
long int ismax( long int a, long int b) {
    if (a % b == 0)
        return b;
    else
        return ismax(b, a % b);
}

long  int ismin( long int a, long int b) {

    return a * b / ismax(a, b);
}

int main() {
    long int n, m;
    scanf("%ld %ld", &n, &m);
    long  int max = ismax(n, m);
    long int min = ismin(n, m);
    printf("%ld", max + min);

}

最大公约数递归函数:

long int ismax( long int a, long int b) {

if (a % b == 0)

return b;

else

return ismax(b, a % b);

}

最小公倍数可以直接调用最大公约数计算

long int ismin( long int a, long int b) {

return a * b / ismax(a, b);

}