#include<stdio.h>
int max2₋digital(int a,int b);//穷举法
int max3₋digital(int a,int b);//递归
int min₋digital(int a,int b);//最小公倍数
int max1₋digital(int a,int b)//辗转相除法求最大公因数
{
int c;
while(b)
{
c=a%b;
a=b;
b=c; }
return a;
}
int max2₋digital(int a,int b)
{
int t=a<b?a:b;
while(!(a%t==0&&b%t==0))
t--;
return t;
}
int max3₋digital(int a,int b)//递归
{
return b == 0 ? a:max3₋digital(b,a%b);
}
int min₋digital(int a,int b) //最小公倍数
{
int i=0;
for(i=1;; i++) {
if((a*i)%b==0)
return a*i;
}
}
int main(){
int m=0;
int n=0;
int yin=0;
int yin1=0;
int yin3=0;
int bei=0;
int bei2=0;
scanf("%d %d",&m,&n);
yin=max1₋digital(m,n); //可用函数指针
yin1=max2₋digital(m,n);
yin3=max3₋digital(m,n);
bei=(m*n)/max1₋digital(m,n); //两数相乘除最小公因数
bei2=min₋digital(m,n);
printf("❶%d和%d的最大公因数是:%d\n",m,n,yin);
printf("❷%d和%d的最大公因数是:%d\n",m,n,yin1);
printf("❸%d和%d的最大公因数是:%d\n",m,n,yin3);
printf("————————————分隔符———————————\n");
printf("❶%d和%d的最小公倍数是:%d\n",m,n,bei);
printf("❷%d和%d的最小公倍数是:%d",m,n,bei2);
return 0;
}
c语言公因数公倍数
最新推荐文章于 2023-11-08 17:19:05 发布
这篇博客介绍了使用C语言计算两个整数最大公因数(GCD)的三种方法:辗转相除法、穷举法和递归法,并给出了最小公倍数(LCM)的计算方法。程序通过输入两个整数,分别展示三种GCD算法的结果以及两数相乘除以GCD得到的LCM。
摘要由CSDN通过智能技术生成