第一种方法:
image.png image.png
Console.WriteLine("请输入第一个数");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数");
int b = int.Parse(Console.ReadLine());
//int c = a > b ? a : b;//把a和b的最大值赋给c
for (int i = a; i >= 1; i--)//把i的初始值设为a和b的最大值,大于最小值1,递减
{
if (a % i == 0 && b % i == 0)//两个数之间大的除以小的,i以此减1,直到两个数能同时被除为止,得出的数就是最大公约数
{
Console.WriteLine("最大公约数为" + i);
Console.WriteLine("最小公倍数为{0}", (a * b) / i);//最小公倍数等于a和b相乘,除以最大公约数
break;
}
}
第二种方法:
image.png
Console.WriteLine("请输入第一个数");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数");
int b = int.Parse(Console.ReadLine());
int s = a * b;
if (a < b)//保证a是两个数的最大
{
int temp = a;
a = b;
b = temp;
}
while (b != 0)
{
int temp = a % b;//temp是两个数的余数
a = b;//辗转相除,用大数除以小数,再用结果除以余数,直到不能相除,这个数便是最大公约数
b = temp;//把temp赋给b
}
Console.WriteLine("最大公约数为" + a);
Console.WriteLine("最小公倍数为{0}", s / a);
网友评论