Skip to content

Commit b7ec818

Browse files
author
venkat-abhi
committed
Add lcm calculator
1 parent 4bb5d8e commit b7ec818

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

lcm.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
4+
long get_gcd_euclidian(long d1, long d2)
5+
{
6+
/* swap the numbers if d2 is greater than d1 */
7+
if (d2 > d1) {
8+
d1 = d1 - d2;
9+
d2 = d1 + d2;
10+
d1 = d2 - d1;
11+
}
12+
13+
if (d2 == 0) {
14+
return d1;
15+
}
16+
17+
long rem = d1 % d2;
18+
19+
return get_gcd_euclidian(d2, rem);
20+
}
21+
22+
long get_lcm_euclidian(long val1, long val2)
23+
{
24+
if (val1 == 0 || val2 == 0) {
25+
return 0;
26+
}
27+
28+
long prod = (long) (val1*val2);
29+
long gcd = get_gcd_euclidian(val1, val2);
30+
31+
return (prod/gcd);
32+
}
33+
34+
int main(int argc, char **argv)
35+
{
36+
long ip1 = 0;
37+
long ip2 = 0;
38+
scanf("%ld %ld", &ip1, &ip2);
39+
printf("%ld", get_lcm_euclidian(ip1, ip2));
40+
41+
return 0;
42+
}

0 commit comments

Comments
 (0)