Examine this program? Tell me its bugs ?

Invasive contributor
28Mar2010,18:14   #1
lionaneesh's Avatar
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.
Go4Expert Founder
28Mar2010,19:56   #2
shabbir's Avatar
Its just too perfect. Don't you think the same.
Invasive contributor
28Mar2010,20:46   #3
lionaneesh's Avatar
REly.......

thanxxxxxxxxxx...........
Ambitious contributor
28Mar2010,22:19   #4
en_7123's Avatar
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.
Invasive contributor
28Mar2010,23:01   #5
lionaneesh's Avatar
Quote:
Originally Posted by en_7123 View Post
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.
kk sir thanx and will look forward abt it while writing the code next time.

thanx..
Mentor
29Mar2010,19:12   #6
xpi0t0s's Avatar
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?
Invasive contributor
29Mar2010,22:41   #7
lionaneesh's Avatar
Quote:
Originally Posted by xpi0t0s View Post
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?
Thank u sir fr ur advice ...