忘了辗转相除法的,看这儿(摘自百度百科)
方法一: 辗转相除法
#include<stdio.h>
int main()
{
int m,n,i,max=1,min,tmp;
scanf("%d %d",&m,&n);
if(m>n) //让m为最小的
{
tmp=m;
m=n;
n=tmp;
}
int maxa,minb;
maxa=n;minb=m;
while(minb!=0) //辗转相除法
{
tmp=maxa%minb;
maxa=minb;
minb=tmp;
}
printf("%d %d",maxa,m*n/maxa);
return 0;
}
方法二
#include<stdio.h>
int main()
{
int m,n,i,max=1,min,tmp;
scanf("%d %d",&m,&n);
if(m>n) //让m为最小的
{
tmp=m;
m=n;
n=tmp;
}
for(i=2;i<=m;i++) //求最大公约数
{
if(m%i==0&&n%i==0)
{
max=i;
if(max<i)
max=i;
}
}
min=m*n/max; //求最小公倍数
printf("%d %d",max,min);
return 0;
}
方法三
#include<stdio.h>
int main()
{
int m,n,i,max,min,t;
scanf("%d %d",&m,&n);
t=(m<n)?m:n;
for(i=t;i>=1;i--)
{
if(m%i==0 && n%i==0) //求最大公约数
{
max=i; //max:最大公约数
break;
}
}
printf("%d %d",max,m*n/max);
return 0;
}