#include
#include
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
#include
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;
}
#include
int main()
{
int a,b,i,min,max; //a、b存梁陆储读入的两个正整数
scanf("%d%d",&a,&b);
max = 1;
for(i=2;i<=a;i++)
{
if(a%i==0 && b%i==0)
max = i;
}
min = a*b;
for(i=a*b-1;i>=a;i--)
{
if(i%a==0 && i%b==0)
逗渣梁 min = i;
}
printf("%d\t%d\n",max,min); //先后输出最大公因数和最小公倍数
return 0;
}
这个算法适合输入比较小的情况,不是很高效山运。
代码如下
#include
int main()
{
int p,r,n,m,temp;
scanf("%d"态消,&n);
scanf("%d',&m);
if (n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它帆缓知们哪饥的最小公约数为:%d\n",p/n);
return 0;
}