参考代码:
写的不好看,但思路还是比较清晰的,暂时也没出现bug
#include
void f14(int m,int n){
int i=0;
int num=1;
int temp1=m,temp2=n;//用两个变量寄存m,n的值
int min=m
for(i=2;i<=min;i++){
if((m%i==0)&&(n%i==0)){
//printf("%d\n",i);
num*=i;
m=m/i;
n=n/i;
min=min/i;
i=1;//i的还原,不然在执行一次循环体后,i++=3,下次循环时,会将i=2这个商给跳过,出现问题
//printf("%d\n",min);
}
}
printf("最大公约数为:%d\n",num);
printf("最小公倍数为:%d\n",temp1*temp2/num);
}
int main(){
printf("请输入两个数:");
int m,n;
scanf(" %d %d",&m,&n);
f14(m,n);
return 0;
}
Zayn
Zayn
267***5830@qq.com3年前 (2018-10-14)