ک م م در پایتون با کد و مثال – به زبان ساده

۲۵
۱۴۰۵/۰۲/۱۹
۱۰ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

«ک م م» سرنامی از کلمات عبارت «کوچک‌ترین مضرب مشترک» (Least Common Multiple | LCM) است. برای درک بهتر این مفهوم، فرض کنیم از ما خواسته شده است ک م م اعداد ۱۲ و ۱۵ را پیدا بکنیم. این اعداد بی‌نهایت مضرب مشترک دارند. به عنوان مثال می‌توان به ۶۰ و ۱۲۰ و ۱۸۰ و غیره اشاره کرد. اما کوچک‌ترین مضرب مشترک آن‌ها برابر با ۶۰ است. بنابراین در اصطلاح گفته می‌شود که ک م م ۱۲ و ۱۵ برابر با ۶۰ است. این عملیات، کاربرد‌های گسترده و تخصصی در محاسبات ریاضی دارد. باید اشاره کنیم که پایتون در حوزه محاسبات عددی کاربرد گسترده‌ای دارد. از همین جهت، تابعی هم به صورت درونی با هدف محاسبه ک م م در پایتون تعبیه شده است. زبان برنامه نویسی پایتون کاربرد زیادی در حوزه محاسبات علمی و عددی دارد. بنابراین تقریبا تمام مسائل و توابع ریاضی را می‌توانیم در پایتون پیاده‌سازی بکنیم.

آنچه در این مطلب می‌آموزید:
  • در این مطلب با مفهوم ک م م و نحوه محاسبه آن در ریاضیات آشنا می‌شوید.
  • یاد می‌گیرید که چطور با کمک فرمول ب م م مقدار ک م م را محاسبه کنید.
  • با چند مثال، حالت‌های مختلف استفاده از تابع math.lcm را برای پیدا کردن ک م م بررسی می‌کنید.
  • دو روش نوشتن الگوریتم محاسبه ک م م در پایتون را به صورت تابع یاد می‌گیرید.
  • روش برنامه نویسی الگوریتم کشف عامل اول برای اعداد را در زبان پایتون می‌آموزید.
  • با ویژگی‌های تابع ()lcm آشنا شده و سینتکس استفاده از آن را به شکل کامل می‌آموزید.
ک م م در پایتون با کد و مثال – به زبان سادهک م م در پایتون با کد و مثال – به زبان ساده
997696

در این مطلب از مجله فرادرس، روش‌های محاسبه ک م م یا LCM در پایتون را معرفی می‌کنیم. ابتدا به صورت مختصر و سریع، مفهوم ک م م را توضیح داده و روش ریاضی محاسبه آن را بررسی می‌کنیم. سپس چند مورد از رایج‌ترین تکنیک‌های محاسبه LCM در پایتون را معرفی کرده و یک به یک آن‌ها را با کمک مثال‌های ساده پیاده‌سازی می‌کنیم.

روش محاسبه ک م م در پایتون چیست؟‌

استفاده از تابع math.lcm()  یکی از ساده‌ترین و سر راست‌ترین روش‌ها برای محاسبه ک م م در پایتون است. این تابع می‌تواند به صورت همزمان مقدار ک م م دو یا چند عدد صحیح را محاسبه بکند. به بیان ریاضی، کوچک‌ترین مضرب مشترک اعداد «a» و «b»، کوچک‌ترین عدد صحیح مثبتی است که بر هر دو عدد a و b بخش‌پذیر باشد.

برای محاسبه ک م م می‌توانیم از مقدار ب م م هم کمک بگیریم. در واقع «کوچک‌ترین مضرب مشترک» را می‌توان از رابطه بین «بزرگترین مقسوم علیه مشترک» و حاصل ضرب a و b به صورت زیر بدست آورد.

lcm(a,b)=a×bgcd(a,b)lcm(a, b)\:=\:\frac{|a\:\times\:b|}{gcd(a,\:b)}

در معادله بالا عبارت a×b{|a\:\times\:b|} مقدار قدر مطلق حاصل ضرب aa و bb را نشان می‌دهد. برای مثال اگر فرض کنیم که مقدار aa برابر با 66 است و bb برابر با 88، پس ک م م aa و bb با کمک فرمول‌های زیر قابل محاسبه است.

  • صورت کسر: 6×8=48|6 × 8| = 48
  • مخرج کسر: gcd(6,8)=2gcd(6, 8) = 2
  • نتیجه معادله:‌ lcm(6,8)=48/2=24lcm(6, 8) = 48/2 = 24

این معادله را می‌توان به صورت ساده شده lcm(6,8)=24lcm(6,8)=24 نوشت. یعنی کوچک‌ترین مضرب مشترک 66 و 88 برابر با 2424 است.

در این مطلب، روش محاسبه مقدار LCM در پایتون را با سه روش زیر بررسی می‌کنیم.

کاربردی‌ترین روش‌های محاسبه ک م م در پایتون
کاربردی‌ترین روش‌های محاسبه ک م م در پایتون

در ادامه مطلب، تمام روش‌های بالا را یک به یک بررسی کرده‌ایم.

روشایده اصلیسادگی
math.lcm()استفاده از تابع آمادهخیلی ساده
حلقهبررسی مضارب عدد بزرگ‌ترمتوسط
عامل اولتجزیه به عوامل اولسخت‌تر

تا به این قسمت از مطلب با مفهوم ک م م در ریاضی آشنا شده‌اید. همچنین سه مورد از تکنیک‌های محاسبه این مقدار را در پایتون شناخته‌اید. در ادامه روش کدنویسی و استفاده از این تکنیک‌ها را هم یک به یک بررسی می‌کنیم. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد می‌کنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاه‌های همراه خود نصب کنید.

برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.

استفاده از تابع Math.lcm در پایتون

برای محاسبه ک م م در پایتون می‌توانیم از تابع math.lcm()  کمک بگیریم. این تابع در کتابخانه Math قرار گرفته است. یعنی قبل از نوشتن آن باید این کتابخانه را به محیط کدنویسی خود ایمپورت کنیم.

در کادر پایین، سینتکس استفاده از تابع math.lcm()  را نوشته‌ایم.

math.lcm(a, b)
تمام پارامتر‌های سینتکس بالا را در فهرست زیر، معرفی کرده‌ایم.
  • math: این پارامتر، نام کتابخانه مرجع برای دسترسی به تابع lcm()  است. اگر دستور ایمپورت را به صورت from math import lcm  بنویسید، دیگر نیازی به استفاده از این پارامتر در متن کدها نیست.
  • lcm(): نام تابع اصلی محاسبه ک م م در پایتون است.
  • a  و b: این پارامتر‌ها همان اعداد صحیحی هستند که باید مقدار ک م م آن‌ها محاسبه شود. توجه کنید که هیچ محدودیتی در تعداد پارامتر‌ها وجود ندارد. یعنی می‌توان از هیچ یا چند پارامتر مختلف با مقدار صحیح مثبت و منفی در این تابع استفاده کرد.

پارامتر‌های بالا را در جدول پایین نیز به صورت خلاصه و مختصر توضیح داده‌ایم.

پارامترتوضیح ساده
mathکتابخانه شامل تابع lcm()
lcm()تابع محاسبه ک.م.م
aعدد اول
bعدد دوم

مثال اول: محاسبه ک م م دو عدد صحیح مثبت

در مثال پایین می‌خواهیم مقدار ک م م 12 و 15 را با استفاده از متد math.lcm()  محاسبه کنیم. در پایان برای نمایش خروجی به شکل کاربرپسند، پیام واضح و مشخصی نیز نوشته‌ایم.

نتیجه اجرای کد بالا به شکل زیر در خروجی نمایش داده می‌شود.

The result obtained is: 60

مثال دوم: محاسبه ک م م اعداد منفی

در این مسئله، دو عدد منفی داده شده‌اند. از ما خواسته شده است که مقدار ک م م آن‌ها را با کمک زبان پایتون محاسبه کنیم. برای حل این سوال هم می‌توانیم از تابع math.lcm()  کمک بگیریم.

نتیجه اجرای کد بالا به شکل زیر در خروجی نمایش داده می‌شود.

The result obtained is: 18

مثال سوم: محاسبه ک م م با پارامتر صفر

اگر یکی از پارامتر‌های تابع LCM در پایتون برابر با ۰ باشد، نتیجه همیشه برابر با صفر می‌شود. تفاوتی نمی‌کند که سایر پارامتر‌ها چند عدد بوده و چه مقدارهایی داشته باشند. در کادر پایین مقدار ک م م ۰ و ۵ را با کمک تابع math.lcm()  محاسبه می‌کنیم.

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

The result obtained is: 0

مثال چهارم: استفاده از متغیر در تابع math.lcm

گاهی از اوقات اعداد مورد استفاده در برنامه‌ها به صورت پویا و با کمک متغیر‌ها تولید می‌شوند. در این صورت برنامه می‌تواند به صورت خودکار مقدار ک م م را برای اعداد مختلف محاسبه کند. در این مثال دو عدد 8  و 12 را به ترتیب در متغیر‌های a  و b  ذخیره کرده‌ایم. سپس با کمک تابع math.lcm()  مقدار ک م م a  و b  را محاسبه می‌کنیم.

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

The result obtained is: 24

استفاده از پروژه های عملی برای یادگیری پایتون

پایتون زبان برنامه نویسی ساده‌ای است اما نکات پیشرفته آن می‌توانند کمی سردرگم کننده باشند. زیرا بسیار متنوع و کامل هستند. وجود ابزارهای متنوع و کامل باعث پیچیده شدن و افزایش ریزه‌کاری‌های حرفه‌ای هم می‌شود. بهترین راه برای ملکه شدن مفاهیم اولیه و پیشرفته پایتون در ذهن توسعه دهندگان، استفاده از این موارد در زمان اجرای پروژه‌های واقعی است. انجام این کار، چند فایده مهم دارد. برای نمونه ممکن است در پروژه‌های عملی چندین بار و به صورت تکراری از مفاهیم اصلی پایتون استفاده کنیم. در ضمن در این نوع پروژه‌ها بیشتر اوقات، مفاهیم متنوع را صورت ترکیبی و در کنار هم به کار می‌بریم.

به عنوان مثال، اجرای پروژه‌های ساده با کمک حلقه ‎for یا حل چند نمونه سوال حلقه ‎for‎ در پایتون به یادگیری بهتر این مفهوم کمک می‌کند.

مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه محور برنامه نویسی پایتون هدایت شوید.

فرادرس برای کمک به یادگیری مفاهیم مختلف پایتون (از نکات ابتدایی تا موارد پیشرفته) مجموعه آموزشی با نام «مجموعه آموزش پروژه محور برنامه نویسی پایتون» را تولید کرده است. اساتید و توسعه دهندگان حرفه‌ای در این مجموعه، مراحل پیاده‌سازی پروژه‌های واقعی و گوناگون را آموزش می‌دهند. فیلم‌های پروژه‌محور فرادرس طوری طراحی شده‌اند که انواع موضوعات ساده و پیشرفته را پوشش بدهند. در هر کدام از این فیلم‌های آموزشی، تکنولوژی‌ها و کتابخانه‌های مختلفی به کار برده شده‌اند.

در پایین، چند فیلم‌ آموزشی پروژه‌محور زبان پایتون را معرفی کرده‌ایم.

در بخش بعد، یکی از روش‌های پرکاربرد برای نوشتن تابع محاسبه ک م م را بررسی می‌کنیم.

محاسبه ک م م در پایتون با کمک حلقه

در این مثال می‌خواهیم که خودمان تابعی برای محاسبه LCM در پایتون بنویسیم. تابع ساخته شده بر روی دو آرگومان a  و b  کار می‌کند. در این تکنیک برای پیمایش تمام مضارب عدد بزرگتر از حلقه استفاده خواهیم کرد. ابتدا بخش‌‌پذیری تمام این اعداد را بر مقدار کوچک‌تر (از بین a  و b  ) بررسی می‌کنیم. به محض آنکه اولین مضرب عدد بزرگتر بر عدد کوچک‌تر بخش‌پذیر بود، یعنی آن مقدار برابر با ک م م a  و b  است.

پایتون زبان برنامه‌نویسی همه‌ منظوره و سطح بالایی است که به گویش انسان نزدیک بوده و به صورت پیشرفته از شی‌گرایی استفاده می‌کند. به همین دلیل کاربرد‌های زیادی پیدا کرده است. در صورت تمایل به یادگیری برنامه نویسی پایتون همراه با مثال‌های واقعی پیشنهاد می‌کنیم که فیلم آموزش برنامه نویسی پایتون همراه با بررسی مثال های عملی + گواهینامه را در فرادرس مشاهده بکنید. به منظور دسترسی راحت‌تر، لینک این فیلم در پایین نیز قرار داده شده است.

در کادر زیر، تکنیک محاسبه ک م م در پایتون با کمک حلقه for  پیاده‌سازی شده است.

توضیح کامل کدهای بالا را در فهرست پایین نوشته‌ایم.

  1. ابتدا تابعی به نام LCM  تعریف می‌کنیم. این تابع باید کوچک‌ترین مضرب مشترک دو عدد را پیدا کند.
  2. داخل تابع، عدد بزرگ‌تر را در متغیر greater  و عدد کوچک‌تر را در متغیر smallest  قرار می‌دهیم.
  3. با کمک حلقه for از مقدار عدد بزرگ‌تر تا حاصل ضرب دو عدد را با گام greater پیمایش می‌کنیم.
  4. در هر تکرار، بررسی می‌کنیم که آیا مقدار فعلی i  (عدد فعلی که مضربی از greater است) بر smallest  بخش‌پذیر است یا نه.
  5. اگر بخش‌پذیر باشد، همان مقدار به‌عنوان LCM  برگردانده می‌شود. در غیر این صورت حلقه ادامه پیدا می‌کند.
  6. در بخش پایانی، دو عدد 12 و 15 تعریف شده‌اند.
  7. سپس تابع LCM  برای محاسبه مقدار ک م م بین این اعداد فراخوانی شده و نتیجه روی خروجی چاپ می‌شود.
فلوچارت مربوط به عملیات حلقه در تابع محاسبه ک م م در پایتون
فلوچارت مربوط به عملیات حلقه در تابع محاسبه ک م م در پایتون

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

LCM of 12 and 15 is 60
در بخش بعد، روش محاسبه ک م م را با تجزیه اعداد به عامل‌های اول آن‌ها بررسی می‌کنیم. در این روش از دو تابع مجزا برای حل مسئله کمک می‌گیریم. تمام توابع موجود در برنامه توسط خودمان نوشته شده‌اند. به عنوان توسعه‌دهنده پایتون باید روش دقیق و صحیح استفاده از تابع def در پایتون برای تعریف توابع دیگر را بلد باشیم. کار با این تابع شامل نکات جزئی و فنی فراوانی است. در صورت تمایل به یادگیری حرفه‌ای کار با def  و تکنیک‌های تعریف تابع پیشنهاد می‌کنیم که مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.

محاسبه ک م م با تجزیه به عوامل اول

در این مثال می‌خواهیم مقدار ک م م دو عدد صحیح را از طریق تجزیه آن‌ها به «عامل‌های اول» (Prime Factors) محاسبه کنیم.

ابتدا تابعی برای تشخیص عامل‌های اول عدد n  با نام prime_factors(n)  تعریف می‌کنیم. سپس تابعی هم به نام lcm_using_prime_factors(a, b)  می‌نویسیم. مسئولیت این تابع، استفاده از عوامل اول برای محاسبه مقدار «کوچکترین مضرب مشترک» (Least Common Multiple | LCM) بین اعداد a  و b  است. این تابع فاکتور‌های اول هر دو عدد را با همدیگر ترکیب می‌کند. سپس بیشترین تعداد تکرار هر عامل اول را در نظر می‌گیرد. با ضرب کردن آن‌ها مقدار ک م م به دست می‌آید.

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

LCM of 12 and 15 is 60
در فهرست پایین تمام مراحل اجرای کدهای بالا را یک به یک نوشته‌ایم.
  1. ابتدا تابعی به نام prime_factors  تعریف می‌کنیم. وظیفه این تابع، پیدا کردن عامل‌های اول عدد داده شده است.
  2. در این تابع، با کمک حلقه while عدد ورودی را بر تمام اعداد شامل 2  و بزرگتر از آن تقسیم می‌کنیم.
  3. هر بار که مقدار n  بر یکی از این اعداد بخش‌پذیر بود، آن را در لیست factors  ذخیره می‌کنیم.
  4. سپس مقدار n  را برابر با نتیجه تقسیم صحیح n  بر روی مقدار divisor  قرار می‌دهیم.
  5. اما اگر n  بر divisor  بخش‌پذیر نبود، divisor  را به علاوه 1  کرده و حلقه را دوباره پیمایش می‌کنیم.
  6. با افزایش مقدار divisor ، تمام عوامل اول عدد به‌دست می‌آیند و در نهایت لیست آن‌ها برگردانده می‌شود.
  7. سپس تابعی به نام lcm_using_prime_factors()  تعریف می‌کنیم تا کوچک‌ترین مضرب مشترک دو عدد را محاسبه کند.
  8. ابتدا عوامل اول هر دو عدد با استفاده از تابع قبلی به‌دست می‌آیند.
  9. سپس با کمک تابع set در پایتون مجموعه‌ای از عوامل اول هر دو عدد ساخته می‌شود. با این کار، فقط عوامل یکتا بررسی می‌شوند.
  10. برای هر عامل، بیشترین تعداد تکرار آن در دو لیست پیدا شده و در مقدار lcm ضرب می‌شود.
  11. در بخش پایانی، دو عدد 12 و 15 را تعریف کرده‌ایم.
  12. سپس تابع ک م م خود را بر روی این اعداد اجرا کرده و نتیجه را در خروجی چاپ می‌‌کنیم.
اعداد ۶ و ۸ هر دو به سمت LCM در پایتون با شادی می‌دوند. - ک م م در پایتون

چطور با کمک فرادرس پایتون را به شکل کامل یاد بگیریم؟

فرادرس به منظور کمک به یادگیری کامل و حرفه‌ای زبان برنامه نویسی پایتون، مجموعه‌ای از فیلم‌های آموزشی را تولید و منتشر کرده است. پایتون با اینکه ساختار و سینتکس ساده‌ای دارد اما در عین حال به گزینه‌ای بسیار مناسب برای توسعه نرم‌افزارهای مدرن و پیچیده تبدیل شده است. بنابراین با یادگیری این زبان فرصت‌های شغلی مختلفی در مقابل ما قرار می‌گیرد. منابع متنوعی برای یادگیری پایتون وجود دارند. از بین این منابع، تماشای فیلم‌های آموزشی از ارزش بیشتری برخوردار است. به همین دلیل، وب‌سایت فرادرس سال‌هاست که فیلم‌های آموزشی خوبی در سطوح گوناگون برای پایتون تولید کرده است.

نکته قوت این مجموعه آموزشی آن‌جاست که بیشتر فیلم‌های مربوط به سطوح ابتدایی به صورت رایگان در آن ارائه می‌شوند. در پایین، چند مورد از فیلم‌های آموزشی پایتون را معرفی کرده‌ایم.

در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلم‌های پروژه‌محور بیشتری دیدن کنید.

مجموعه آموزش برنامه نویسی پایتون Python – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی پایتون Python از مقدماتی تا پیشرفته هدایت شوید.

جمع‌بندی

ک م م مخفف عبارت «کوچک‌ترین مضرب مشترک» بین دو عدد صحیح است. این فرمول جزو عملیات تخصصی در ریاضیات به حساب می‌آید. از ابزار ک م م بیشتر در محاسبات عددی و ریاضی استفاده می‌شود. از آن‌جا که زبان پایتون هم کاربرد زیادی در این حوزه دارد بنابراین لازم است روش یافتن مقدار ک م م بین دو عدد مختلف در پایتون را بلد باشیم. در این مطلب از مجله فرادرس، به سه روش تخصصی برای محاسبه ک م م اشاره شده است. در روش اول از تابع اختصاصی math.lcm()  کمک می‌گیرم. در روش‌های بعدی، دو مورد از رایج‌ترین الگوریتم‌های محاسبه ک م م را به صورت دستی پیاده‌سازی می‌کنیم.

الگوریتم اول مربوط به محاسبه ک م م با بررسی یک به یک مضارب عدد بزرگ است. در الگوریتم دوم هم هر دو عدد را به عامل‌های اول تشکیل دهنده‌ آن‌ها تجزیه می‌کنیم. سپس با کمک این عوامل مقدار دقیق ک م م را بدست می‌آوریم. در هر دو صورت، پیاده‌سازی این الگوریتم‌ها برای برنامه نویسان تازه‌کار به عنوان چالش و تمرینی مفید شناخته می‌شود.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
tutorialspointGeeksforGeeks
PDF
مطالب مرتبط
نظر شما چیست؟

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