سلام
الگوریتم محاسبه بزگترین مقسوم علیه مشترک دو عدد را کسی داره؟
خواهش می کنم اگه کسی می تونه راهنماییم کنه.
ممنونم
سلام
الگوریتم محاسبه بزگترین مقسوم علیه مشترک دو عدد را کسی داره؟
خواهش می کنم اگه کسی می تونه راهنماییم کنه.
ممنونم
سلام ، میتونید از دو روش بازگشتی یا غیر بازگشتی استفاده کنید ، البته روش های دیگری در بخش
نظریه اعداد ریاضیات گسسته ، نیز وجود دارد !!!
Eculidian Algorithm for GCD
روش بازگشتی :
GCD(a,b) = GCD(b,a%b)
موفق و پیروز باشید !!!!
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;
}
سلام
میشه کسی فرمول بدست آوردن ک.م.م و ب.م.م رو اینجا بنویسه
من یادم نیست
الگوریتم اقلیدس در این روش، برای محاسبهٔ ب.م.م. دو عدد x و y که به صورت نمایش داده میشود، چنین عمل میشود (فرض بر این است که 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); } }
int gcd(int a,int b){return a%b?gcd(b,a%b):a;}
مثالی به زبان 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();
}