青岛三星电视售后:关于c语言 编写程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 00:48:45
输出两个正整数m和n ,求其最大公约数和最小公倍数。 如何用c编写出来呢 不会啊 请教大家

#include<stdio.h>
void main()
{
int M(int x,int y);
int N(int x,int y);
int a,b,max,min;
printf("**********Please input 2 numbers**********\n");
scanf("%d%d",&a,&b);
max = M(a,b);
min = N(a,b);
printf("Do you want to know what's the common divisor is?\n**********It is %d**********\nDo you want to know what's the common multiple is?\n**********It is %d**********\n",a,b);
}

int M(int x,int y)
{
int r,z;
if(x < y)
{
r = y;
y = x;
x = r;
}
r = x % y;
while(r != 0)
{
x = y;
y = r;
r = x % y;
}
if(r == 0)
{
z = y;
}
return z;
}

int N(int x,int y)
{
int i,r,t,x1,y1;
x1 = x;
y1 = y;
if(x < y)
{
r = y;
y = x;
x = r;
}
r = x % y;
while(r != 0)
{
x = y;
y = r;
r = x % y;
}
if(r == 0)
{
t = y;
}
i = x1*y1/t;
return i;
}
都是先求出最大公约数,之后两个数相乘除以最大公约数就是了

展转相除 一种算法,你要看看书就晓得了

可以用展转相除
void main()
{
int t,m,n,j(1),i;
cin>>m>>n;
i=m;
t=n;
for(;j>0;)
{j=m%n;
m=n;
n=j;}
cout<<m<<endl;
i=i/m;
t=i*t;
cout<<t;
}
这是C++的