We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now

x

Finding the LCM of given n numbers.

picasothakkar
on
Medium Priority
475 Views
Last Modified: 2012-06-27
Any one can write the code for finding the LCM of given n numbers.

I have written the code for finding the LCM of 2 numbers, but I need to find the LCM of given n numbers.

int gcd(int a, int b)
{
      if (a==0 || b==0) return max(a,b);
      if (a > b)       return gcd(b, a);
      if (!(b % a)) return a;
      return gcd(a, b % a);
}

int lcm(int a, int b)
{
   return b*a/gcd(a,b);
}


Comment
Watch Question

Just create a lcm_n function that recursively calls itself or delegates to lcm.

If lcm_n is called with only one number, return that number.
If lcm_n is called with more than one number, then have it call itself recursively.
    a = lcm_n of the first half of the numbers
    b = lcm_n of the second half of the numbers
    return lcm(a,b)
p.s. this sounds suspiciously like homework, thus no code.

Commented:
wouldn't it be

lcm(a1,...,aN) = lcm(a1,lcm(a2,...aN)) ???
Commented:
I think you can optimize GCDs code to be like:
//assume that a and b cannot both be 0
int GCD(int a, int b)
{
   if (b==0) return a;
   return GCD(b,a%b);
}
>>but I need to find the LCM of given n numbers
so, the numbers should be stored in array, right?
then you can do it using for loop :
{
int array[N];
int output = array[0];    
for(int i = 1; i<N; i++)
     output = lcm(output,array[i]);
}
or you can do it recursively as  experts said ..
regards;

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.