当前位置:编程学习 > C#/ASP.NET >>

C#--第2周实验--任务五--编写一个控制台应用--求两个整数的最小公倍数与最大公约数

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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; 
 
        } 
    } 

 
运行结果:
 

 

 
 

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,