首先输入a,b两个数然后使temp为两者作除的余数,后将被除数赋给除数,将余数赋给余数(此时不用分辨除数和余数的大小,因为如果余数大于除数相当与计算机执行一步将余数和除数互换位置)输出条件为除数b为0(因为除数为上一步余数为0),最后剩余的被除数a作为两者最大公约数,
而最小公倍数等于a的初始值和b相乘然后再除以最大公约数
#include<stdio.h>
int main() {
int a, b;
int tem;
scanf("%d%d", &a, &b);
int m = a * b;
while (b != 0)
{
tem = a % b;
a = b;
b = tem;
}
m = m / a;
printf("%d %d", a,m);
return 0;
}
#include<stdio.h>
int gcd(int a, int b) {
int t;
while(b!=0) {
t=a%b;
a=b;
b=t;
}
return a;
}
int main() {
int a,b;
scanf("%d%d",&a,&b);
printf("gcd=%d\n",gcd(a,b));
return 0;
}
仅供自己理解参考记忆。