输入2个数,求出这2个数的最大公约数和最小公倍数

第一种方法:


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);

你可能感兴趣的:(输入2个数,求出这2个数的最大公约数和最小公倍数)