مثال 31 پایتون – برنامه ای به پایتون بنویسید که بزرگ‌ترین مقسوم‌علیه مشترک یا GCD دو عدد صحیح مثبت را محاسبه کند.

مثال 31 پایتون – برنامه ای به پایتون بنویسید که بزرگ‌ترین مقسوم‌علیه مشترک یا GCD دو عدد صحیح مثبت را محاسبه کند.

کد برنامه

توضیح برنامه

این کد یک تابع به نام calculate_gcd ایجاد می‌کند که جی‌سی‌دی (GCD) یا بزرگترین مقسوم علیه عدد مشترک بین دو عدد را محاسبه می‌کند.

تابع calculate_gcd دو آرگومان می‌پذیرد، x و y، که عددهایی هستند که می‌خواهیم جی‌سی‌دی آنها را محاسبه کنیم.

  • اگر باقی‌ماندهٔ تقسیم x به y صفر باشد (یعنی x بر y بخش‌پذیر باشد)، تابع به طور مستقیم مقدار y را به عنوان جواب برمی‌گرداند چرا که جواب نهایی در این حالت جی‌سی‌دی برابر با y است.
  • در غیر این صورت، تابع یک حلقه for از int(y / 2) تا 1 اجرا می‌کند. این حلقه می‌خواهد بزرگترین مقسوم علیه مشترک بین x و y را پیدا کند. این حلقه به ازای هر عدد k در این محدوده، بررسی می‌کند که آیا x و y هر دو بر k بخش‌پذیر هستند یا نه. اگر هر دو بر k بخش‌پذیر باشند، k را به عنوان مقدار جی‌سی‌دی پیدا کرده و آن را به عنوان جواب برمی‌گرداند. سپس از حلقه خارج می‌شود.
  • اگر حلقه به پایان برسد و هیچ مقداری برای k پیدا نشود (یعنی هیچ عددی که همزمان مقسوم علیهٔ x و y باشد پیدا نشود)، تابع به عنوان جواب مقدار پیش‌فرض 1 را بر می گرداند.

سپس، سه نمونه جی‌سی‌دی با ورودی‌های مختلف از تابع فراخوانی شده و نتایج در خروجی چاپ می‌شوند:

  1. جی‌سی‌دی عدد 15 و 18 برابر با 3 است.
  2. جی‌سی‌دی عدد 2 و 5 برابر با 1 است.
  3. جی‌سی‌دی عدد 254 و 365 برابر با 1 است.

راه حل دوم

توضیح راه حل دوم

الگوریتم استفاده شده در این تابع، الگوریتم اقلیدس (یا الگوریتم اقلیدسی) است. این الگوریتم به صورت زیر عمل می‌کند:

  1. ابتدا باقی‌مانده عدد number1 تقسیم بر number2 را محاسبه می‌کند و در متغیر remainder ذخیره می‌کند.
  2. سپس یک حلقه while شروع می‌شود که تا زمانی که باقی‌مانده ناصفر باشد، ادامه دارد.
  3. در هر مرحله حلقه، number1 به number2 و number2 به remainder نسبت داده می‌شوند.
  4. باقی‌مانده جدید عبارتند از باقی‌مانده قبلی تقسیم بر number2.
  5. این فرآیند تا زمانی که باقی‌مانده صفر شود، ادامه دارد.
  6. در انتها، مقدار غیرصفری در number2 که GCD است، برگردانده می‌شود.

از این تابع می‌توانید برای محاسبه GCD دو عدداستفاده کنید. به عنوان مثال:

در این مثال، مقدار بازگشتی تابع GCD دو عدد 12 و 18 عدد 6 است.

راه حل سوم

توضیح راه حل سوم

این کد پایتون یک تابع به نام calculate_gcd ایجاد می‌کند که با استفاده از reduce و math.gcd محاسبه‌ی (GCD) بین تمام عناصر یک لیست اعداد را انجام می‌دهد.

توضیحات خط به خط کد:

  1. ابتدا دو ماژول، reduce و gcd از ماژول‌های مورد نیاز به کد اضافه می‌شوند.
  2. تابع calculate_gcd تعریف می‌شود که یک ورودی به نام numbers دارد. این ورودی لیستی از اعداد صحیح را نمایان می‌کند.
  3. تابع calculate_gcd از تابع reduce استفاده می‌کند تا با کم کردن تمام اعداد لیست با یکدیگر و با استفاده از تابع gcd از ماژول math، می تواند (GCD) را محاسبه کند.
  4. دو لیست اعداد به عنوان نمونه‌ها تعریف می‌شوند: numbers = [336, 360] و numbers = [24, 30, 36].
  5. برای هر نمونه از لیست numbers، متنی تازه با استفاده از تابع join و نمایش اعداد به عنوان یک رشته تولید می‌شود. سپس تابع calculate_gcd با استفاده از لیست اعداد به عنوان ورودی فراخوانی می‌شود.
  6. خروجی محاسبه شده GCD به همراه متن تعیین شده نمایش داده می‌شود.

نتایج خروجی:

برای لیست [336, 360]:

  • GCD این دو عدد برابر با 24 است.

برای لیست [24, 30, 36]:

  • GCD این سه عدد برابر با 6 است.

دیدگاه‌ خود را بنویسید

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