第二周 任务五 求两个整数的最小公倍数与最大公约数
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求两个整数的最小公倍数与最大公约数 * 作 者:薛广晨 * 完成日期:2011 年 09 月 09 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: 输入两个整数,求两个整数的最小公倍数与最大公约数* 程序输出: * 程序头部的注释结束 */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Common_Divisor{ class Program { static void Main(string[] args) { Console.Write("请您输入第一个整数:"); int x = int.Parse(Console.ReadLine()); Console.Write("请您输入第二个整数:"); int y = int.Parse(Console.ReadLine()); int gcd = Greatest_common_divisor(x, y); int lcm = Least_common_multiple(x, y); Console.WriteLine("{0}与{1}的最小公倍数是:{2} 最大公约数是:{3}", x, y, lcm, gcd); Console.ReadKey(); } static int Greatest_common_divisor(int m, int n) { int i = 2;//定义循环控制变量 int gcd = 1;//求最大公约数 int min1 = min(m, n); while (i <= min1) { while (m % i == 0 && n % i == 0)//求分子分母共同的公约数 { m = m / i; n = n / i; min1 = min(m, n); gcd = gcd * i; } ++i; } return gcd; } //求最小公倍数 static int Least_common_multiple(int m, int n) { int gcd = Greatest_common_divisor(m, n);//求最大公约数 int lcm = (m / gcd) * (n / gcd) * gcd;//最小公倍数与最大公约数有一定关系 return lcm; } static int min(int m, int n) { return m < n ? m : n; } }}
