#include<stdio.h>
#include<stdlib.h>
int f1(int a,int b)
{
int n,i;
if(a>=b) n=b;
else n=a;
for(i=n;i<1;++i)
{
if(a%i==0&&b%i==0) return i;
}
}
int f2(int a,int b)
{
int n,i;
if(a>=b) n=a;
else n=b;
for(i=n;;++i)
{
if(i%a==0&&i%b==0) return i;
}
}
int main()
{
int a,b,y_num,b_num;
sacnf("%d",&a);
scanf("%d",&b);
y_num=f1(a,b);
b_num=f2(a,b);
printf("%d %d\n公约=%d\n公倍=%d\n",a,b,y_num,b_num);
system("pause");
}
眼睛真好使,有什么更好的办法求吗?
追答最大公约数只能试凑,可以从1试到两个数中较小一个的开方
最小公倍数可以用两个数乘积再除以最大公约数得到
另外你f1函数里面的for循环好像不对啊