ویرگول
ورودثبت نام
Mostafa Kooti
Mostafa Kooti
خواندن ۵ دقیقه·۳ سال پیش

ب.م.م و ک.م.م در پایتون


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

می خوایم دو روش به دست آوردن ب.م.م و ک.م.م توی پایتون رو با هم یاد بگیریم :

روش اول


روش اول که استفاده از کتابخونه math هست و استفاده از gcd(Greatest Common Divisor)

و lcm(Greatest Common Divisor) هست که اولی همون ب.م.م و دومی همون ک.م.م هست.


خب بریم سراغ کد:

import math math.gcd(int,int) math.lcm(int,int)

همونجور که دیدید این شیوه نوشتن کد هست که باید به جای اون دوتا int عدد وارد کنید یا از input استفاده کنید اینطوری:

import math print(math.gcd(int(input()),int(input()))) print(math.lcm(int(input()),int(input())))

خب این از روش ساده و راحتش.



بریم سراغ روش دوم که باید توی اون الگوریتم بنویسیم?:


روش دوم

(الگوریتم ب.م.م )

باید یه تابع تعریف کنیم که دوتا ورودی firstوsecond بگیره:

def gcd(first,second):

باید اول دو تا عدد رو مقایسه کنیم و هر کدوم کوچیک تر بود (با توجه به مفهموم ب.م.م) رو توی یه متغیر دلخواه بریزیم چون بعدا باش کار داریم?:

def gcd(first, second):
if first > second:
bmm = second
elif second > first:
bmm = first


یه حلقه while می نویسیم تا زمانی که bmm بزرگتر از یک هست:

def gcd(first, second):
if first > second:
bmm = second
elif second > first:
bmm = first
while bmm > 1:

توی حلقه، اول باید چک کنیم شاید اون عدد کوچیکتر ب.م.م دوتاشون باشه اگه اینطور بود که کار همون اول تمومه و نتیجه رو به کاربر نمایش میدیم و حلقه رو break می کنیم :

def gcd(first, second):
if first > second:
bmm = second
elif second > first:
bmm = first
while bmm > 1:
if first % bmm == 0 and second % bmm == 0:
print(f&quotB.M.M is {bmm}&quot)
break

اگر اینطور نبود(else) از اون عدد کوچیکتره یکی کم کن ببین ب.م.م شون هست یا نه:

def gcd(first, second):
if first > second:
bmm = second
elif second > first:
bmm = first
while bmm > 1:
if first % bmm == 0 and second % bmm == 0:
print(f&quotB.M.M is {bmm}&quot)
break
else:
bmm -= 1
if first % bmm == 0 and second % bmm == 0:
return print(f&quotB.M.M is {bmm}&quot)

خب برنامه مون هر بار که یکی کم کرد و دید ب.م.م نیست یکی کم می کنه تا به ب.م.م برسه

به همین سادگی?


روش دوم

(الگوریتم ک.م.م )

باید یه تابع تعریف کنیم که دوتا ورودی firstوsecond بگیره:

def gcd(first,second):

باید اول دو تا عدد رو مقایسه کنیم و هر کدوم بزرگ تر بود (با توجه به مفهموم ک.م.م) رو توی یه متغیر دلخواه بریزیم چون بعدا باش کار داریم?:

def gcd(first, second):
if first > second:
kmm = first
elif second > first:
kmm = second


یه حلقه while می نویسیم تا زمانی که kmm بزرگتر از یک هست:

def gcd(first, second):
if first > second:
kmm = first
elif second > first:
kmm = second
while kmm > 1:

توی حلقه، اول باید چک کنیم شاید اون عدد بزرگ تر ک.م.م دوتاشون باشه اگه اینطور بود که کار همون اول تمومه و نتیجه رو به کاربر نمایش میدیم و حلقه رو break می کنیم :

def gcd(first, second):
if first > second:
kmm = first
elif second > first:
kmm = second
while kmm > 1:
if kmm % first == 0 and kmm % second == 0:
print(f&quotK.M.M is {kmm}&quot)
break

اگر اینطور نبود(else) به اون عدد بزرگ تره یکی اضافه کن ببین ب.م.م شون هست یا نه:

def gcd(first, second):
if first > second:
kmm = first
elif second > first:
kmm = second
while kmm > 1:
if kmm % first == 0 and kmm % second == 0:
print(f&quotB.M.M is {bmm}&quot)
break
else:
bmm += 1
if kmm % first == 0 and kmm % second == 0:
return print(f&quotK.M.M is {kmm}&quot)

خب برنامه مون هر بار که یکی اضافه کرد و دید ک.م.م نیست یکی اضافه می کنه تا به ک.م.م برسه

به همین سادگی?


ممنون از شما که وقت گذاشتی و خوندی ❤


پایتونpyhtonتابعب م مک م م
مصطفی کوتی 19 ساله دانشجوی مهندسی کامپیوتر دانشگاه تهران(ورودی 1400?)
شاید از این پست‌ها خوشتان بیاید