求最大公约数和最小公倍数

复制代码
class Program
    {
        public float maxGongYueShu(int n1, int n2)
        {
            int temp = Math.Max(n1, n2);//求两个数的最大值
            n2 = Math.Min(n1, n2);//求两个数中的最小值
            n1 = temp;//记录临时值
            while (n2 != 0)
            {
                n1 = n1 > n2 ? n1 : n2;//使n1中的数大于n2中的数
                int m = n1 % n2;//记录n1求余n2的结果
                n1 = n2;//交换两个数
                n2 = m;//记录求余结果
            }
            return n1;//得到最大公约数
        }
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("请输入第一个数:");
                int n1 = Convert.ToInt32(Console.ReadLine());//记录第一个数
                Console.Write("请输入第二个数:");
                int n2 = Convert.ToInt32(Console.ReadLine());//记录第二个数
                if (n1 * n2 != 0)//判断两个数中的一个是否为0
                {
                    Program program = new Program();//创建Program对象
                    Console.WriteLine("最大公约数:" + program.maxGongYueShu(n1, n2));//输出最大公约数
                }
                else
                {
                    Console.WriteLine("这两个数不能为0。");
                }
            }
        }
    }
复制代码
复制代码
 class Program
    {
        public float minGongBeiShu(int n1, int n2)
        {
            int temp = Math.Max(n1, n2);//求两个数的最大值
            n2 = Math.Min(n1, n2);//求两个数中的最小值
            n1 = temp;//记录临时值
            int product = n1 * n2;//求两个数的乘积
            while (n2 != 0)
            {
                n1 = n1 > n2 ? n1 : n2;//使n1中的数大于n2中的数
                int m = n1 % n2;//记录n1求余n2的结果
                n1 = n2;//交换两个数
                n2 = m;//记录求余结果
            }
            return (product / n1);//得到最小公倍数
        }
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("请输入第一个数:");
                int n1 = Convert.ToInt32(Console.ReadLine());//记录第一个数
                Console.Write("请输入第二个数:");
                int n2 = Convert.ToInt32(Console.ReadLine());//记录第二个数
                if (n1 * n2 != 0)//判断两个数中的一个是否为0
                {
                    Program program = new Program();//创建Program对象
                    Console.WriteLine("{0}和{1}的最小公倍数为{2}", n1, n2, program.minGongBeiShu(n1, n2));//输出最小公倍数
                }
                else
                {
                    Console.WriteLine("这两个数不能为0。");
                }
            }
        }
    }
复制代码

 

 

 

posted @   蚂蚁拉车  阅读(217)  评论(0编辑  收藏  举报
编辑推荐:
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
阅读排行:
· dotnet 源代码生成器分析器入门
· 官方的 MCP C# SDK:csharp-sdk
· 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
· 一文搞懂MCP协议与Function Call的区别
· 提示词工程师自白:我如何用一个技巧解放自己的生产力
点击右上角即可分享
微信分享提示