fun(a,b)
{
int a,b;
int i,j,m,n;
if(a>b)
{m=a; a=b;b=m}
i=a;j=b;
while(n= j%i)!=0) //大的除以小的
{j=i; i=n}
return(i);
}
也有下面这种形式
int gcd(int m,int n)
{
int r;
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
return n;
}
int lcm(int m,int n)
{
return (m*n)/gcd(m,n);
}
原理
#include <stdio.h>
int main()
{
int k,m,n,s;
scanf("%d %d",&m,&n);
k = m%n;
if(k==0)
{
printf("%d %d",n,m*n/n);
}
else
{
do
{
s=k;
k=n%k;
if(k==0)
{
printf("%d %d",s,m*n/s);
}
}while(k!=0);
}
return 0;
}