**********************C*******************
1.
scanf("%d%d",&i,&j);
p=i*j;
if(i<j) //排序
{
temp=i;
i=j;
j=temp;
}
while(i%j)
{
temp=i%j;
i=j;
j=temp;
}
printf("%d %d\n",j,p/j); //j为最大公约数,p/j为最小公倍数
2.递归求
int LCM(int a,int b)
{
if(b==0)return a;
else
return LCM(b,a%b);
}//求最大公约数
a=a/LCM(a,b)*b;//最小公倍数,注意不要先乘再除,那样可能会超出范围,要先除再乘
********************Java**************************
1.
package pro;
import java.util.*;
public class Array {
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
int a=reader.nextInt();
int b=reader.nextInt();
if(a<b){
int t=a; a=b; b=t;
}
int q=a*b;
while(a%b!=0){
int p=a%b; a=b; b=p;
}
System.out.println(b); //最小公约
System.out.println(q/b); //最大公倍
}
}
2.递归
package exam;
import java.util.*;
public class mainexam {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int a=reader.nextInt();
int b=reader.nextInt();
System.out.println(LCM(a,b)); //最小公约
System.out.println(a/LCM(a,b)*b); //最大公倍
}
public static int LCM(int a,int b){
if(b==0) return a;
else return LCM(b,a%b);
}
}