#c, آموزش قدم به قدم #c, سی شارپ

ب م م در سی شارپ(بزرگترین مقسوم علیه مشترک)

ب م م در سی شارپ

در این جلسه تیم کدگیت را با آموزش ب م م در سی شارپ(بزرگترین مقسوم علیه مشترک) همراهی کنید.. پیش نیاز این آموزش ، آشنایی با متد و دستور شرطی if است.

ب م م

بزرگترین مقسوم علیه مشترک یا ب م م بین دو عدد را عددی میگویند که بین مقسوم علیه های مشترک دو عدد، بزرگترین باشد. برای مثال ب م م دو عدد 4 و 8 میشود 4. ویژگی های بارز ب م م شامل موارد زیر هست:

  1. ب م م دو عدد یکسان میشود خود عدد
  2. ب م م هر عدد با صفر میشود صفر
  3. ب م م هر عدد با یک میشود 1

برای پیدا کردن ب م م روش ساده این است که تمامی مقسوم علیه های دو عدد را بنویسیم و بزرگترین عددی که بین آن دو مشترک هست را ب م م انتهاب کنیم.

پیاده سازی ب م م در سی شارپ

برای پیاده سازی ب م م در سی شارپ ما ایتدا نیاز به دو عدد داریم که آنها را a و b مینامیم. برای پیاده سازی ما از این روش استفاده میکنیم که عدد کوچکتر را در نظر میگیریم و تمامی اعداد بین 1 تا عدد کوچکتر را بر هر دو عدد تقسیم میکنیم اگر باقیمانده صفر شد ما آن عدد را به عنوان ب م م در نظر میگیریم. توجه داشته باشید که ما از عدد کوچکتر شروع میکنیم و یکی یکی به پایین حرکت میکنیم.

namespace GCD
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            int a = 11;
            int b = 10;

            int gcd = GCD(a, b);
            Console.WriteLine(gcd);
            Console.ReadKey ();

        }

        private static int GCD(int a, int b) {
            int gcd = 0;

            if (a == 0 || b == 0) {
                gcd = 0;
            } else {
                if (a > b) {
                    for (int i = b; i > 0; i--) {
                        if (a % i == 0 && b % i == 0) {
                            gcd = i;
                            break;
                        }

                    }
                } else if (a < b) {
                    for (int i = a; i > 0; i--) {
                        if (a % i == 0 && b % i == 0) {
                            gcd = i;
                            break;
                        }

                    }
                } else {
                    // a == b
                    gcd = a;
                }


            }
            return gcd;
        }

    }
}

نوشته های مشابه

7 دیدگاه در “ب م م در سی شارپ(بزرگترین مقسوم علیه مشترک)

  1. زهرا گفت:

    سلام میشه با حلقه for یا while هم انجامش داد؟؟

    1. سعید غریبی گفت:

      سلام بله با حلقه While و For هم می توان این الگوریتم را نوشت.

      1. زهرا گفت:

        میشه بزارید سایت؟
        چون من فقط در حد for و while و if بلدم
        هیچ متدی استاد یاد نداده
        و ازمون همچین پروژه ای میخواد

  2. علی مسجدی گفت:

    سلام، کد زیر را برای محاسبه ب.م.م پیشنهاد میکنم:

    public static int GCD(int a, int b)
    {
    int small = a b ? a : b;

    if (small == 0 || small == 1)
    return small;

    int i = small;
    for (;small % i != 0 || big % i != 0 ; i–) ;
    return i;
    }

    1. علی مسجدی گفت:

      ببخشید، بخشی از کد پاک شده و بقه متن بولد شده، نوشته بودم:
      int big = a > b ? a : b;
      int small = a < b ? a : b;

    2. آناهیتا گفت:

      این روش هم که با استفاده از الگوریتم اقلیدس هست پیشنهاد میشه.
      using System;
      using System.Linq;

      namespace BMM
      {
      public static class Program
      {
      public static void Main()
      {

      long a=int.Parse(Console.ReadLine());
      long b=int.Parse(Console.ReadLine());
      if(a>=b){
      long c=a%b;
      while(c!=0){
      a=b;
      b=c;
      c=a%b;

      }

      Console.WriteLine(b);

      }

      if (b>a){
      long c=b%a;
      while(c!=0){
      b=a;
      a=c;
      c=b%a;

      }

      Console.WriteLine(a);

      }

      }

      }
      }

  3. علی مسجدی گفت:

    سلام، کد زیر را برای محاسبه ب.م.م پیشنهاد میکنم:

    public static int GCD(int a, int b)
    {
    int big = a > b ? a : b;
    int small = a < b ? a : b;

    if (small == 0 || small == 1)
    return small;

    int i = small;
    for (;small % i != 0 || big % i != 0 ; i–) ;
    return i;
    }

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *