PDA

View Full Version : سوال: الگوریتم محاسبه ب م م دو عدد



pc_helper
دوشنبه 20 آبان 1387, 14:41 عصر
سلام
الگوریتم محاسبه بزگترین مقسوم علیه مشترک دو عدد را کسی داره؟
خواهش می کنم اگه کسی می تونه راهنماییم کنه.



ممنونم

Salar Ashgi
دوشنبه 20 آبان 1387, 15:31 عصر
سلام ، میتونید از دو روش بازگشتی یا غیر بازگشتی استفاده کنید ، البته روش های دیگری در بخش

نظریه اعداد ریاضیات گسسته ، نیز وجود دارد !!!

Eculidian Algorithm for GCD

روش بازگشتی :


GCD(a,b) = GCD(b,a%b)

موفق و پیروز باشید !!!!

powerboy2988
دوشنبه 20 آبان 1387, 20:27 عصر
Int BMM(int a,int b)
{
Int c;
If (a<b)
Exchange (a,b)
While(b!=0)
{
c= a mod b;
a=b;
b=c;
}
Return b;
}

adonis27
شنبه 12 اسفند 1391, 12:05 عصر
سلام
میشه کسی فرمول بدست آوردن ک.م.م و ب.م.م رو اینجا بنویسه
من یادم نیست

Blue_Eyes
یک شنبه 23 تیر 1392, 12:39 عصر
الگوریتم اقلیدس در این روش، برای محاسبهٔ ب.م.م. دو عدد x و y که به صورت http://upload.wikimedia.org/math/a/b/6/ab6fb24b87c6dc1d3c2ad6ec391605e0.png نمایش داده می‌شود، چنین عمل می‌شود (فرض بر این است که x از y بزرگتر است، اگر چه در حالت برعکس نیز، صرفاً با تغییر نام x و y این روش قابل استفاده خواهد بود):


از x به اندازهٔ y کم کن، و مقدار جدید را به جای x جایگذاری کن
قدم بالا را آن قدر تکرار کن تا x از y کوچک‌تر شود
جای x و y را عوض کن و قدم‌ها بالا را تکرار کن، تا وقتی که مقدار x صفر شود؛ در این حالت، مقدار y برابر با ب.م.م. دو عدد x و y خواهد بود.

به عنوان نمونه، اگر x برابر ۷۰ و y برابر ۲۵ باشد، مراحل کار چنین خواهد بود:
ب.م.م.(۲۵و۷۰) ← ب.م.م.(۲۵و۴۵) ← ب.م.م.(۲۵و۲۰) ← ب.م.م.(۲۰و۲۵)
← ب.م.م.(۲۰و۵) ← ب.م.م.(۵و۲۰) ← ب.م.م.(۵و۱۵) ← ب.م.م.(۵و۱۰)
← ب.م.م.(۵و۵) ← ب.م.م.(۵و۰) ← ب.م.م. = ۵
مثالی از این الگوریتم به زبان سی

int gcd(int x, int y)
{ if (y == 0)
{ return x; }
else
{ return gcd(y, x % y); } }

yashar_sb_sb
چهارشنبه 26 تیر 1392, 23:27 عصر
int gcd(int a,int b){return a%b?gcd(b,a%b):a;}

zadbakhsh
یک شنبه 15 مرداد 1396, 09:47 صبح
مثالی به زبان C#


static void Main(string[] args) {
Console.WriteLine("Enter First Number: ");
int First =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter Second Number: ");
int Second = Convert.ToInt32(Console.ReadLine());
if(First<Second)
{
int replacement=First;
First = Second;
Second = replacement;
}
Console.WriteLine("Your Numbers are {0} and {1}",First,Second);
while (First%Second!=0)
{
int remin = First % Second;
First = Second;
Second = remin;
}
Console.WriteLine("Your Euclid's GCD is {0}!!!", Second);
Console.ReadKey();
}