Close Back

#include<stdio.h>
#include<conio.h>

main()
{
	int ans,num1,num2,gcd = 1,lcm = 1;
	static short int clr = 0;

	if(clr == 0)        /* Do All these in first iteration only*/
	{
		clrscr();
		printf("\nThis program will calculate the G C D and L C M of 2 positive numbers");
		printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		clr++;
	}

	/*get 'number 1'*/
	get_num(&num1,1);

	/*get 'number 2'*/
	get_num(&num2,2);

	if(num2>num1)
	swap(&num2,&num1);

	find_gcd(num1,num2,&gcd);

	find_lcm(num1,num2,&lcm);

	print_num(gcd,'g');

	print_num(lcm,'l');

	ans = repeat();

	if(ans == 1)
	{
		main();
	}
	else if(ans == 0)
	{
		printf("\n\t\tHit any key ...");
		getch();
		print_rajesh();

	}
}

swap(number2,number1)
int *number1,*number2;
{
	int i = 1;
	int temp = *number2;	/*Temproray variable*/
	*number2 = *number1;
	*number1 = temp;
	return(i);
}

get_num(number,flag)
int *number,flag;
{
	do
	{
		switch(flag)
		{
			case 1:
			  printf("\nEnter the first number:");
			  break;
			case 2:
			  printf("\nEnter the second number:");
		 }
		 scanf("%d",number);
	}
	while(*number <= 0);
}

find_gcd(num_1,num_2,gcd)
int num_1,num_2,*gcd;
{
	int i;

	  for(i = 1;i <= num_2;i++)
	    {
	      if((num_1 % i == 0) && (num_2 % i == 0))
	      *gcd = i;
	    }

}

find_lcm(num1,num2,lcm)
int num1,num2,*lcm;
{
	int i;

	for( i = (num1*num2) ; i >= num1 ; i--)
	{
		if( (i % num1 == 0) && (i % num2 == 0))
		*lcm = i;
	}

}

print_num(num,g_or_l)
int num;
char g_or_l;
{
	switch(g_or_l)
	{
		case 'g':
		  printf("\n\nThe G C D of the numbers is %d",num);
		  break;
		case 'l':
		  printf("\n\nThe L C M of the numbers is %d",num);
	 }
}

repeat()
{
	char response[4];

	printf("\n\n\nDo once more? (y/n) :");
	scanf("%3s",response);

	if(response[0] == 'y' || response[0] == 'Y')
	{
		return(1);
	}
	else
	{
		return(0);
	}
}

/*************************************************************************************/
/* A C Function to print rajesh in a stylish way can (should) be used in any cprogram*/
/*************************************************************************************/

print_rajesh()
{
	clrscr();
	printf("\nThis program made by :");
	printf("\n\n\n\n\n\007");
	printf(",##########.                   ,####.                          ,####.\n");
	printf(":#############.                `####;                          :####.\n");
	printf(":#####. :#####.                                                :####.\n");
	printf(":#############;   `#########.  ,####.  ,#######.    ,########. :###########.\n");
	printf(":############;          :####. :####. ,###. :###.  ,####.  :#. :###########.\n");
	printf(":##########.       :#########. :####.,####. :####.`##########. :####. :####.\n");
	printf(":###########.   ,############. :####.:###########;  `#########.:####. :####.\n");
	printf(":############.  :#####. :####. :####.`#####.            :#####;:####. :####.\n");
	printf(":#####. `######  ############. :####. `#########.  ,#########; :####. :####.\n");
	printf("`#####;  `######; `##########; :####.     `#####;  `#######;   `####; `####;\n");
	printf("                              #####");
	printf("\n\n\n\tRajesh _ThE gReAt in 2k.....\n\n\n\t\t\tHit any key to continue.....");
	getch();
}