>#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) );
}
求两个整数的最大公约数和最小公倍数(通过调用自定义函数实现)
最新推荐文章于 2022-09-16 15:10:51 发布