PDA

View Full Version : آموزش: ک.م.م دو عدد در سی شارپ



ffffparsa
چهارشنبه 11 مرداد 1396, 12:41 عصر
توی انجمن یه گشت زدم دیدم مطلبی راجع به ک م م یک عدد در سی شارپ نیست گفتم بزار دست به کار بشم.این کد نسبت به کد های مشابه برای ک م م خوانایی بالاتری داره چون سعی کردم از فرمول ریاضی کمتر استفاده کنم.

using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace BMM
{
class Program
{
public static void Main(string[] args)
{
int a, b,LCM=0 ;
Console.Write("Enter first number : ");
a = int.Parse(Console.ReadLine());
Console.Write("Enter second number : ");
b = int.Parse(Console.ReadLine());
int[] array1 = new int[a * b];
int[] array2 = new int[a * b];
for (int i = 0; i < a * b; i++)
{
array1[i] = a * (i + 1);
array2[i] = b * (i + 1);


}



for (int i = 0; i < array1.Length; i++)
{
for (int j = 0; j < array2.Length; j++)
{
if (LCM==0)
{
if (array1[i]==array2[j])
{
LCM = array1[i];
}


}
}
}
Console.WriteLine("The LCM is : "+LCM);
}

}
}




تشکر تاپیک یادتون نره:لبخند::متفکر:

مهرداد صفا
شنبه 14 مرداد 1396, 13:14 عصر
سلام.
برای محاسبه ک.م.م دو عدد a و b:
- عدد بزرگتر از بین دو عدد را پیدا کنید.
- در یک حلقه از مضرب های عدد بزرگتر، اولین عددی که بر عدد کوچتر بخش پذیر بود ک.م.م است.
بهینه و دقیق:


int big = a >= b ? a : b;
int small = a <= b ? a : b;
int LCM = small * big;
for (int i = big; i <= small * big; i += big)
{
if (i % small == 0)
{
LCM = i;
break;
}
}
Console.WriteLine(LCM);