ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#求两个正整数的最大公约数和最小公倍数

2021-08-01 10:01:53  阅读:169  来源: 互联网

标签:12 公倍数 18 System C# 最大公约数 using


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lianxi
{
    class Program
    {
        static void Main(string[] args)
        {
            /* 1)最大公约数(最大公因数):几个数公有的因数中最大的一个。
               例"12与18
               12的因数: 1,12,2,6,3,4
               18的因数: 1,18,2,9,6,3
               公有因数: 1, 2, 3,6,
               12与18的最大公约数:6

               2)最小公倍数:几个数公有的倍数中最小的一个。
               例4和6
               4的倍数: 4,8,12,16,20,24,
               6的倍数: 6,12,18,24,
               4和6的最小公倍数: 12

               3)辗转相除法(欧几里得算法):用于计算两个非负整数a,b的最大公约数。
               两数为a、b(b <a),用辗转相除法,求它们最大公约数(a、b)的步骤如下:
               1997 / 615 = 3 (余 152)
               615 / 152 = 4  (余7)
               152 / 7 = 21   (余5)
               7 / 5 = 1      (余2)
               5 / 2 = 2      (余1)
               2 / 1 = 2      (余0)
               以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。
               关于辗转相除法的详解可以百度搜索。
             * */
            //题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
            int num1, num2, temp, a, b;
            Console.WriteLine("请输入第一个数:");
            num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入第二个数:");
            num2 = Convert.ToInt32(Console.ReadLine());
            //辗除法求其最大公约数
            //被除数必须是两数中最大的,如果不是就交换位置
            if (num1 < num2)
            {
                temp = num1;
                num1 = num2;
                num2 = temp;
            }
            a = num1;
            b = num2;
            while (b != 0)//求最大公约数
            {
                temp = a % b;
                a = b;
                b = temp;
            }
            //输出最大公约数
            Console.WriteLine("输出最大公约数" + a);
            //输出最小公倍数=俩数相乘÷最大公约数
            Console.WriteLine("输出最小公倍数" + num1 * num2 / a);
            Console.ReadKey();
        }
    }
}

在这里插入图片描述

标签:12,公倍数,18,System,C#,最大公约数,using
来源: https://blog.csdn.net/m0_56945138/article/details/119294649

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有