Least common multiple of two integers
The least common multiple, also called the lowest common multiple or smallest common multiple of two integers a and b is the smallest positive integer that is a multiple of both a and b. (wikipedia)
In order to compute the least common multiple of the two numbers, a and b, I will use this formula:
lcm = a*b/gcd, gcd being the greatest common divisor of a and b.
Read this article to see the function used below that I implemented for finding the gcd of two integers.
/*
* Description:
* Finds the least common multiple
* Parameters:
* a - the first number
* b - the second number
* Returns:
* lcm - the least common multiple of a and b
*/
int LCM(int a, int b)
{
int lcm = 0;
if(a < 0)
{
a = -a;
}
if(b < 0)
{
b = -b;
}
lcm = a*b/GCD(a,b);
return lcm;
}
Example:
#include<stdio.h>
#include<conio.h>
int LCM(int a, int b);
int main(void)
{
int a = 0, b = 0, lcm = 0;
printf("\n Enter the first number: ");
scanf("%d",&a);
printf(" Enter the second number: ");
scanf("%d",&b);
lcm = LCM(a,b);
printf("\n\tThe least common multiple is: %d",lcm);
getch();
return 0;
}
Output: Least common multiple of an array of integers
/*
* Description:
* Finds the least common multiple of an array of integers
* Parameters:
* a - the array
* first - the index of the leftmost elements of the array
* last - the index of the rightmost element of the array
* Returns:
* lcm - the least common multiple
*/
int ArrayLCM(int *a, int first, int last)
{
int i = 0, lcm = a[first];
for(i=first+1; i<=last; i++)
{
lcm = LCM(lcm,a[i]);
}
return lcm;
}
Example:#include<stdio.h>
#include<conio.h>
int ArrayLCM(int *a, int first, int last);
int main(void)
{
int a[20], n = 0, i = 0, lcm = 0;
printf("\n Enter the number of elements of the array: ");
scanf("%d",&n);
printf(" Enter the elements of the array:\n");
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
lcm = ArrayLCM(a,0,n-1);
printf("\n\tThe greatest common divisor is: %d",lcm);
getch();
return 0;
}


No comments:
Post a Comment