>#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int yue(int x, int y);
//int yue_2(int x, int y);
//int yue_3(int x, int y);
int main()
{
int bei(int x, int y);
int a, b;
int ys, bs;
printf("請輸入兩個整數:\n");
scanf("%d %d", &a, &b);
ys = yue(a, b);
bs = bei(a, b);
printf("最大公約數為%d,最小公倍數為%d\n", ys, bs);
return 0;
}
/*****************簡便一點
int yue_2(int x, int y)
{
int t, r;
if (y > x)
{
t = x;
x = y;
y = t;
}
while (r = (x % y) )//這部分我通過中間變量m改變x,y的值,其實并不需要,因為原x值後面并不需要用到,直接覆寫掉也是可以的
{
x = y;
y = r;
}
return y;
}***************/
/***********用遞歸實作
int yue_3(int x, int y)
{
int t;
if (y > x)
{
t = x;
x = y;
y = t;
}
if (!(x % y))
return y;
return yue_3(y, x % y);
}************************/
int yue(int x, int y)
{
int t,r,m;
if (y > x)
{
t = x;
x = y;
y = t;
}
r = x%y;
while (r!=0)
{
m = y;
y = r;
x = m;
r = x%y;
}
return y;
}
int bei(int x, int y)
{
return (x*y / yue(x,y) );
}