الگوریتم دریافت (ب م م) یا بزرگترین مقسوم مشترک بین دو عدد در زبان C++
برای دریافت ب م م دو عدد از روش اقلیدس استفاده میکنیم. که در نخست نحوه کارکرد فرمول اقلیدس را مورد مطالعه قرار می دهیم و بعدا این فرمول را تبدیل به کد مینمایم با استفاده از زبان C++.
ما با استفاده از تقسیمات متوالی میتوانیم بزرگترین مقسوم مشترک بین دو عدد را دریابیم که با مثالی به تشریح آن می پردازیم.
فرض کنید ما دو عدد داریم 846 و 204 درنخست عدد بزرگتر را تقسیم عدد کوچک میکنیم و بعدا عدد دوم را تقسیم بر باقی مانده عملیه اولی مینمایم و این روش را تا جای ادامه میدیم که تا باقی مانده صفر شود. و آخرین باقی مانده مقسوم علیه غیر صفر ب م م دو عدد ما میباشد.
برای وضاحت مسئله به عکس زیر نگاه کنید:
قسمی که در عکس بالا میبینید عدد 6 ب م م اعداد 846 و 204 میباشد.
برای تبدیل این فرمول به کد در زبان C++ نخست الگوریتم آنرا مینویسیم که قرار ذیل میباشد.
متغییر a عدد اولی را با دستو cin از ورودی دریافت نموده و در خود ذخیره منماید.
متغییر b عدد دومی را با دستور cin از ورودی دریافت نموده و در خود ذخیره مینماید.
متغییر c باقی مانده حاصل تقسیم متغییر های a و b را در خود ذخیره منماید.
چنانچه در شرح فورمول اقلیدس اشاره بر تکرار تقسیمات نموده بودیم پس نیاز به حلقه داریم تا این تقسیمات را برای ما تکرار نماید و شرط این حلقه این است که تا وقتی باید تکرار شود که باقی مانده ما صفر شود.
و در آخر متغییر b را چاپ کند چون داخل حلقه اخرین باقی مانده در داخل b ذخیره میشود.
ما با استفاده از تقسیمات متوالی میتوانیم بزرگترین مقسوم مشترک بین دو عدد را دریابیم که با مثالی به تشریح آن می پردازیم.
فرض کنید ما دو عدد داریم 846 و 204 درنخست عدد بزرگتر را تقسیم عدد کوچک میکنیم و بعدا عدد دوم را تقسیم بر باقی مانده عملیه اولی مینمایم و این روش را تا جای ادامه میدیم که تا باقی مانده صفر شود. و آخرین باقی مانده مقسوم علیه غیر صفر ب م م دو عدد ما میباشد.
برای وضاحت مسئله به عکس زیر نگاه کنید:
قسمی که در عکس بالا میبینید عدد 6 ب م م اعداد 846 و 204 میباشد.
برای تبدیل این فرمول به کد در زبان C++ نخست الگوریتم آنرا مینویسیم که قرار ذیل میباشد.
- شروع
- a , b را بخوان
- a % b را در c قرار بده
- b را در a قرار بده
- c را در b قرار بده
- a % b را در c قرار بده
- اگر c != 0 سپس برو به خط 4
- b را چاپ کن
- پایان
متغییر a عدد اولی را با دستو cin از ورودی دریافت نموده و در خود ذخیره منماید.
متغییر b عدد دومی را با دستور cin از ورودی دریافت نموده و در خود ذخیره مینماید.
متغییر c باقی مانده حاصل تقسیم متغییر های a و b را در خود ذخیره منماید.
چنانچه در شرح فورمول اقلیدس اشاره بر تکرار تقسیمات نموده بودیم پس نیاز به حلقه داریم تا این تقسیمات را برای ما تکرار نماید و شرط این حلقه این است که تا وقتی باید تکرار شود که باقی مانده ما صفر شود.
و در آخر متغییر b را چاپ کند چون داخل حلقه اخرین باقی مانده در داخل b ذخیره میشود.
سوالات تانرا در کامنت بنویسید!
#include <iostream>
using namespace std;
int main(){
int a,b,c;
std::cout << "Enter First Number:" << '\n';
std::cin >> a;
std::cout << "Enter Second Number:" << '\n';
std::cin >> b;
c = a%b;
while (c!=0) {
a = b;
b = c;
c = a%b;
}
std::cout << "Result:" << b <<'\n';
}
Salaamat bashi Ateeq Jan
ReplyDeleteمیشه الگوریتم ک.م.م رو هم بگید؟
ReplyDelete