(009)求最大公约数和最小公倍数

#include<stdio.h>
/*
1.求最大公约数(12,24,看最小的) 
对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,
则该和数即为所求的最小公倍数。
2.求最小公倍数(3,6,看最大的) 
    对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,
	则该和数即为所求的最小公倍数。

*/
int main(){
     int a,b,min;
     int p,q,max;  
     printf("请输入两个数:");
     scanf("%d%d",&a,&b);
     //最大公约数
	 min=(a>b?b:a);//保持b始终为最小值 
	 while(min>0){
	 	
	 	if(a%min==0&&b%min==0){
	 		break;
	 	}
	 	min--;
	 } 
	 //求最小公倍数(3,6,看最大的)
  	p=(a>b)?a:b;    //求两个数中的最大值
  	q=(a>b)?b:a;    //求两个数中的最小值
	max=p;    //最大值赋给p为变量自增作准备
 	while(1){    //利用循环语句来求满足条件的数值
 	  if(p%q==0)
      	    	   break;    //只要找到变量的和数能被a或b所整除,则中止循环
    	   p+=max;    //如果条件不满足则变量自身相加
  	}

	printf("最大公约数:%d\n",min);
	printf("最小公倍数是:%d\n",max);
	return 0;
} 

运行结果如下:

请输入两个数:12 24
最大公约数:12
最小公倍数是:24

--------------------------------
Process exited with return value 0
Press any key to continue . . .

上一篇:009 猴子吃桃


下一篇:(009)使用二维数组输出以下形式