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


در این مطلب از مجله فرادرس، روشهای محاسبه ک م م یا LCM در پایتون را معرفی میکنیم. ابتدا به صورت مختصر و سریع، مفهوم ک م م را توضیح داده و روش ریاضی محاسبه آن را بررسی میکنیم. سپس چند مورد از رایجترین تکنیکهای محاسبه LCM در پایتون را معرفی کرده و یک به یک آنها را با کمک مثالهای ساده پیادهسازی میکنیم.
روش محاسبه ک م م در پایتون چیست؟
استفاده از تابع math.lcm() یکی از سادهترین و سر راستترین روشها برای محاسبه ک م م در پایتون است. این تابع میتواند به صورت همزمان مقدار ک م م دو یا چند عدد صحیح را محاسبه بکند. به بیان ریاضی، کوچکترین مضرب مشترک اعداد «a» و «b»، کوچکترین عدد صحیح مثبتی است که بر هر دو عدد a و b بخشپذیر باشد.
برای محاسبه ک م م میتوانیم از مقدار ب م م هم کمک بگیریم. در واقع «کوچکترین مضرب مشترک» را میتوان از رابطه بین «بزرگترین مقسوم علیه مشترک» و حاصل ضرب a و b به صورت زیر بدست آورد.
در معادله بالا عبارت مقدار قدر مطلق حاصل ضرب و را نشان میدهد. برای مثال اگر فرض کنیم که مقدار برابر با است و برابر با ، پس ک م م و با کمک فرمولهای زیر قابل محاسبه است.
- صورت کسر:
- مخرج کسر:
- نتیجه معادله:
این معادله را میتوان به صورت ساده شده نوشت. یعنی کوچکترین مضرب مشترک و برابر با است.
در این مطلب، روش محاسبه مقدار LCM در پایتون را با سه روش زیر بررسی میکنیم.
- استفاده از تابع math.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 در پایتون به یادگیری بهتر این مفهوم کمک میکند.

فرادرس برای کمک به یادگیری مفاهیم مختلف پایتون (از نکات ابتدایی تا موارد پیشرفته) مجموعه آموزشی با نام «مجموعه آموزش پروژه محور برنامه نویسی پایتون» را تولید کرده است. اساتید و توسعه دهندگان حرفهای در این مجموعه، مراحل پیادهسازی پروژههای واقعی و گوناگون را آموزش میدهند. فیلمهای پروژهمحور فرادرس طوری طراحی شدهاند که انواع موضوعات ساده و پیشرفته را پوشش بدهند. در هر کدام از این فیلمهای آموزشی، تکنولوژیها و کتابخانههای مختلفی به کار برده شدهاند.
در پایین، چند فیلم آموزشی پروژهمحور زبان پایتون را معرفی کردهایم.
- فیلم آموزش پروژه ساخت رابط کاربری خط فرمان در پایتون با Argparse همراه با مثال عملی
- فیلم آموزش رایگان پروژه محور پایتون درباره حل مسئله جرم-فنر-دمپر به روش رانگ کوتا
- فیلم آموزش پیاده سازی ربات معامله گر با مدل SVM در پایتون
- فیلم آموزش پروژه محور پایتون درباره پیاده سازی سیستم مدیریت کتابخانه + گواهینامه
- فیلم آموزش پروژه ساخت چت روم با سوکت نویسی در پایتون، Socket Programming در Python
در بخش بعد، یکی از روشهای پرکاربرد برای نوشتن تابع محاسبه ک م م را بررسی میکنیم.
محاسبه ک م م در پایتون با کمک حلقه
در این مثال میخواهیم که خودمان تابعی برای محاسبه LCM در پایتون بنویسیم. تابع ساخته شده بر روی دو آرگومان a و b کار میکند. در این تکنیک برای پیمایش تمام مضارب عدد بزرگتر از حلقه استفاده خواهیم کرد. ابتدا بخشپذیری تمام این اعداد را بر مقدار کوچکتر (از بین a و b ) بررسی میکنیم. به محض آنکه اولین مضرب عدد بزرگتر بر عدد کوچکتر بخشپذیر بود، یعنی آن مقدار برابر با ک م م a و b است.
پایتون زبان برنامهنویسی همه منظوره و سطح بالایی است که به گویش انسان نزدیک بوده و به صورت پیشرفته از شیگرایی استفاده میکند. به همین دلیل کاربردهای زیادی پیدا کرده است. در صورت تمایل به یادگیری برنامه نویسی پایتون همراه با مثالهای واقعی پیشنهاد میکنیم که فیلم آموزش برنامه نویسی پایتون همراه با بررسی مثال های عملی + گواهینامه را در فرادرس مشاهده بکنید. به منظور دسترسی راحتتر، لینک این فیلم در پایین نیز قرار داده شده است.
در کادر زیر، تکنیک محاسبه ک م م در پایتون با کمک حلقه for پیادهسازی شده است.
توضیح کامل کدهای بالا را در فهرست پایین نوشتهایم.
- ابتدا تابعی به نام LCM تعریف میکنیم. این تابع باید کوچکترین مضرب مشترک دو عدد را پیدا کند.
- داخل تابع، عدد بزرگتر را در متغیر greater و عدد کوچکتر را در متغیر smallest قرار میدهیم.
- با کمک حلقه for از مقدار عدد بزرگتر تا حاصل ضرب دو عدد را با گام greater پیمایش میکنیم.
- در هر تکرار، بررسی میکنیم که آیا مقدار فعلی i (عدد فعلی که مضربی از greater است) بر smallest بخشپذیر است یا نه.
- اگر بخشپذیر باشد، همان مقدار بهعنوان LCM برگردانده میشود. در غیر این صورت حلقه ادامه پیدا میکند.
- در بخش پایانی، دو عدد 12 و 15 تعریف شدهاند.
- سپس تابع LCM برای محاسبه مقدار ک م م بین این اعداد فراخوانی شده و نتیجه روی خروجی چاپ میشود.

بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را تولید کرده و در کنسول نمایش میدهد.
LCM of 12 and 15 is 60محاسبه ک م م با تجزیه به عوامل اول
در این مثال میخواهیم مقدار ک م م دو عدد صحیح را از طریق تجزیه آنها به «عاملهای اول» (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- ابتدا تابعی به نام prime_factors تعریف میکنیم. وظیفه این تابع، پیدا کردن عاملهای اول عدد داده شده است.
- در این تابع، با کمک حلقه while عدد ورودی را بر تمام اعداد شامل 2 و بزرگتر از آن تقسیم میکنیم.
- هر بار که مقدار n بر یکی از این اعداد بخشپذیر بود، آن را در لیست factors ذخیره میکنیم.
- سپس مقدار n را برابر با نتیجه تقسیم صحیح n بر روی مقدار divisor قرار میدهیم.
- اما اگر n بر divisor بخشپذیر نبود، divisor را به علاوه 1 کرده و حلقه را دوباره پیمایش میکنیم.
- با افزایش مقدار divisor ، تمام عوامل اول عدد بهدست میآیند و در نهایت لیست آنها برگردانده میشود.
- سپس تابعی به نام lcm_using_prime_factors() تعریف میکنیم تا کوچکترین مضرب مشترک دو عدد را محاسبه کند.
- ابتدا عوامل اول هر دو عدد با استفاده از تابع قبلی بهدست میآیند.
- سپس با کمک تابع set در پایتون مجموعهای از عوامل اول هر دو عدد ساخته میشود. با این کار، فقط عوامل یکتا بررسی میشوند.
- برای هر عامل، بیشترین تعداد تکرار آن در دو لیست پیدا شده و در مقدار lcm ضرب میشود.
- در بخش پایانی، دو عدد 12 و 15 را تعریف کردهایم.
- سپس تابع ک م م خود را بر روی این اعداد اجرا کرده و نتیجه را در خروجی چاپ میکنیم.

چطور با کمک فرادرس پایتون را به شکل کامل یاد بگیریم؟
فرادرس به منظور کمک به یادگیری کامل و حرفهای زبان برنامه نویسی پایتون، مجموعهای از فیلمهای آموزشی را تولید و منتشر کرده است. پایتون با اینکه ساختار و سینتکس سادهای دارد اما در عین حال به گزینهای بسیار مناسب برای توسعه نرمافزارهای مدرن و پیچیده تبدیل شده است. بنابراین با یادگیری این زبان فرصتهای شغلی مختلفی در مقابل ما قرار میگیرد. منابع متنوعی برای یادگیری پایتون وجود دارند. از بین این منابع، تماشای فیلمهای آموزشی از ارزش بیشتری برخوردار است. به همین دلیل، وبسایت فرادرس سالهاست که فیلمهای آموزشی خوبی در سطوح گوناگون برای پایتون تولید کرده است.
نکته قوت این مجموعه آموزشی آنجاست که بیشتر فیلمهای مربوط به سطوح ابتدایی به صورت رایگان در آن ارائه میشوند. در پایین، چند مورد از فیلمهای آموزشی پایتون را معرفی کردهایم.
- فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه + گواهینامه
- فیلم آموزش پروژه محور پایتون درباره حل ۲۰ مسئله کاربردی در برنامه نویسی + گواهینامه
- فیلم آموزش پردازش موازی در پایتون، روش کار با کتابخانه Thread و Async IO
- فیلم آموزش رایگان کتابخانه Datetime در پایتون برای مدیریت زمان + گواهینامه
- فیلم آموزش کتابخانه Spire.XLS برای کار با فایل های «اکسل» (Excel) در «پایتون» (Python)
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلمهای پروژهمحور بیشتری دیدن کنید.

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












