#include<stdio.h>
#include<stdlib.h>
intHCF(intx,inty);//定义最大公约数函数
intLCM(intx,inty);//定义最小公倍数函数
intmain()
{
inta,b;
printf("Pleaseenter2numbers:");//输入两个整数
scanf("%d%d",&a,&b);
printf("HCF=%d,LCM=%d\n",HCF(a,b),LCM(a,b));//输出最大公约数和最小公倍数
system("pause");
return0;
}
//最大公约数函数(利用欧几里得算法)
intHCF(intx,inty)
{
for(intz=x%y;z!=0;x=y,y=z,z=x%y);
returny;
}
//最小公倍数函数
intLCM(intx,inty)
{
return(x*y)/HCF(x,y);
}
扩展资料
处理数组n个元素的最大公约数
#include<stdio.h>
#include<stdlib.h>
intHCF(intx,inty);
intmain()
{
intn[4],i,temp;
for(i=0;i<4;i++){
printf("PleaseenterNo.%dnumber:",i+1);
scanf("%d",&n[i]);
}
for(i=0,temp=n[0];i<4;i++)
temp=HCF(temp,n[i]);
printf("HCF=%d\n",temp);
system("pause");
return0;
}
intHCF(intx,inty)
{
for(intz=x%y;z!=0;x=y,y=z,z=x%y);
returny;
}
这个算法适合输入比较小的情况,不是很高效。