Code: #include<stdio.h> int lcm(int a,int b); int main() { int a; int b; printf("Enter two numbers to find lcm of ? :-\n1. "); scanf("%d",&a); printf("2. "); scanf("%d",&b); printf("%d is the lcm of %d and %d\n\n",lcm(a,b),a,b); getchar(); return(0); } /******************* FUNCTION *****************************/ int lcm(int a,int b) { int i,g,pr,z,q,dummy,lc = 0; /************************************************************************/ /********* Determining weather a is a prime or not **************/ for(i = 2 ;i < a;i++) /* The loop */ { pr = (a % i); if(pr == 0) { dummy=14296; break; } } if(dummy != 14296) { lc = a * b; } dummy = 0; /********* Determining weather a is a prime or not **************/ for(i = 2 ;i < b;i++) /* The loop */ { pr = (b % i); if(pr == 0) { dummy=14296; break; } } if(dummy != 14296) { lc = a * b; } /************************************************************************/ if((a % b) == 0) { lc = b/a; } if((b % a) == 0) { lc = a/b; } /************************************************************************/ if(b>a) { g = b; } else { g = a; } for(z=1;z <= g;z++) { if(((b % z) == 0) && ((a % z) == 0)) { lc = (b/z) * (a/z); } } /********************************************************************/ return(lc); } This is a lcm finding program. please tell me if there are any bugs in this program and tell me how u liked my idea.
The code is fine but you can write a function for checking if the number is prime or not that would make your code smaller.
Better to set a flag to 1 or 0 than to use some mystical value 14296 - reviewers will be thinking "what's the significance of 14296?" It would be better to use meaningful variable names than single letters. Suppose I give you the formula a=b*c^d - could you tell me what that means?