一般,欲求最小公倍数,先求最大公约数。输入/输出部分你自己写了,这里只是简单用C语言表示使用欧几里德算法:gcd(a,b) = gcd(b,a mod b)进行计算的部分。理解这个算法是关键,可以参考网络上的相关解释或者相关书籍上的解释。 输入部分/ input /略。 处理部分先求最大公约数,用递归形式表示欧几里德算法。如果理解了算法,看上去是非常舒服(简单)的。/ greatest common divisor /int gcd(int a, int b){ return b == 0 ( a : gcd(a%b));} 通过最大公约数,再求最小公倍数。/ least common multiple /int lcm(int a, int b) { return a b / gcd (a, b);} 输出部分/output/略。
最小公倍数=原来的两数之乘积÷最大公约数
程序:
=============
main() /主程序开始/
{
int aa,bb,a,b,c,t;
printf(“请输入要求最大公约数和最小公倍数的两个整数:\n”);
scanf(“%d %d”,&a,&b);
aa=a;
bb=b;
if(a<b)
{
t=a;
a=b;
b=t;
}
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf(“这两个数的最大公约数为:%d\n”,b);
printf(“这两个数的最小公倍数为:%d\n”,aabb/b);
}
#include <stdioh>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int temp;
if(a>b){temp=a;a=b;b=temp;}//保证a是较小的那个数
for(int i=a;i>=0;i--)
if(a%i==0&&b%i==0)//求最大公约数
{
temp=i;
break;
}
printf("%d\n",ab/temp);//输出最小公倍数
}
#include <stdioh>
int GCD(int num1,int num2)
{
if (num1 % num2 == 0)
return num2;
else
return GCD(num2, num1 % num2);
}
int LCM(int a,int b)
{
int temp_lcm;
temp_lcm = ab/GCD(a, b); //最小公倍数等于两数之积除以最大公约数
return temp_lcm;
}
int main()
{
int a,b;
while (scanf("%d%d",&a,&b)!= EOF)
{
printf("%d\n",LCM(a,b));
}
return 0;
}
先求出最大公约数,
最小公倍数由最大公约数转化过去
最大公约数由递归就可以出来了
望采纳谢谢
#include <stdioh>
int main()
{
int a,b,c;//三个数
printf("请输入三个数\n");
scanf("%d%d%d",&a,&b,&c);
for(int i = a;;i++)
{
if((i%a == 0)&&(i%b == 0)&&(i%c == 0))//当i可以同时被三个数整除时输出结果;
{
printf("最小公倍数为:\n%d",i);
break;
}
}
return 0;
}
以上就是关于急求用 c语言编写一个程序求两个数的最小公倍数,越简单越好。全部的内容,包括:急求用 c语言编写一个程序求两个数的最小公倍数,越简单越好。、c++程序最小公倍数求法、用c程序编程,求两个正整数的最小公倍数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)