求最大公约数和最小公倍数

来源:互联网 发布:怎样获取摄像头数据 编辑:程序博客网 时间:2024/05/16 09:50
#include <stdio.h>
#include<stdlib.h> /*其它说明*/
#include<string.h> /*字符串函数*/
int  m,n,l;
   void  Suanfa1(int a,int b,int l)
{
int i;
while(b!=0)
{
i=b;
b=a%b;
a=i;
}
printf("两个数的最小公约数为:%d\n",i);
printf("两个数的最大公约数为:%d\n" ,l/i); 
 } 
void Suanfa2(int a,int b,int l)
{


while(a>0&&b>0)
{
if(a>b)
a=a-b;
else 
b=b-a;

}
printf("两个数的最小公约数为:%d\n",a+b);
printf("两个数的最大公约数为:%d\n" ,l/(a+b)); 
}
int  Suanfa3(int a,int b,int l)
{
int c,k;
c=a;
if(b<a)
    c=b;
for(int i=1;i<=c;i++)
{
if((a%i==0&&b%i==0))
k=i;
}


printf("两个数的最小公约数为:%d\n",k);
printf("两个数的最大公约数为:%d\n", l/k); 
}
void change()
{
scanf("%d%d",m,n); 
l=m*n;
}
int main(void)
{

int k=1;
while(k)
{
int num;
printf(" \n\n                    \n\n");
printf("        ****  *******实现方法*********      \n");
printf("     ----------------------   ------------   \n");
printf("     **********************************     \n");
printf("     * 01。输入数字 *  02.方法1: 相除法  *   \n");
printf("     ***********************************     \n"); 
printf("     * 03.方法2:相减法  * 04.   方法3:  .   \n");
printf("*******************05:退出*******************\n") ;
printf("     ----------------   -------------------- \n");
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num)

case 2:Suanfa1(m, n, l);break;
case 3:Suanfa2( m, n, l);break;
case 4:Suanfa3(m, n, l);break;
case 1: change(); break;
case 5:k=0;break;
default:printf("请在0-8之间选择\n");
}
}
system("pause");
return 0;
1 0