/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙台大學計算機學院學生
* All rights reserved.
* 文件名稱:輸入兩個整數,求兩個整數的最小公倍數與最大公約數。
* 作 者: 雷恆鑫
* 完成日期: 2012 年 09 月08 日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 編程思想:
* 輸入描述:
* 問題描述:
* 程序輸出:
* 程序頭部的注釋結束
*/
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication_do_while
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("這是一個輸入兩個整數,求兩個整數的最小公倍數與最大公約數的程序");
Console.Write("請您輸入第一個整數:");
string first = Console.ReadLine();
Console.Write("請您輸入第二個整數:");
string second = Console.ReadLine();
int x = int.Parse(first);//類型轉換
int y = int.Parse(second);//類型轉換
int Greatest_common_divisor = gcd(x, y);
int Least_common_multiple = lcm(x, y);
Console.WriteLine("{0}與{1}的最小公倍數是:{2} 最大公約數是:{3}", x, y, Least_common_multiple, Greatest_common_divisor);
Console.ReadKey();
}
//求最大公約數
static int gcd(int m, int n)
{
int i = 2;//定義循環控制變量
int Least_common_multiple = 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);
Least_common_multiple = Least_common_multiple * i;
}
++i;
}
return Least_common_multiple;
}
//求最小公倍數
static int lcm(int m, int n)
{
int Greatest_common_divisor = gcd(m, n);//求最大公約數
int Least_common_multiple = (m / Greatest_common_divisor) * (n / Greatest_common_divisor) * Greatest_common_divisor;//最小公倍數與最大公約數有一定關系
return Least_common_multiple;
}
//求兩個數的最大值與最小值
static int min(int m, int n)
{
int min;
if (m > n)
{
min = n;
}
else
{
min = m;
}
return min;
}
}
}
運行結果: