用C语言编写程序求两个数的最小公倍数,并输出

 我来答
百度网友2f62ddf
2019-05-20 · TA获得超过1215个赞
知道答主
回答量:76
采纳率:0%
帮助的人:1.9万
展开全部

如图使用辗转相除法求最小公倍数:

方法步骤:

一、打开VC2010(或其他C语言编译器),新建项目-选择Win32为控制台应用程序-命名-确定

二、选择源文件-添加-新建项

三、选择C++文件-命名.c-添加

四、输入如下程序

#include <stdio.h>

int main()

int a,b,A,B;

int lol,lpl;

printf ("输入两个整数:\n");  

scanf ("%d%d",&a,&b);

A=a;

B=b;

if(B)

while((A %= B) && (B %= A));

lol = A+B;

lpl = a*b/lol;

printf ("最小公倍数为:%d\n", lpl); 

return 0;

}

五、按键Ctrl+F5开始执行(不调试),输入两个整数之间用空格隔开,回车即可得到两个整数的最小公倍数

 扩展资料:

辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。

它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

两个数的最大公约数是指能同时整除它们的最大正整数

设两数为a、b(a2b),求a和b最大公约数(a,b)的步骤如下:

(1)用a除以b(a2b),得a÷b=q..n(0≤n)。

(2)若rn=0,则(a,b)=b;

(3)若r10,则再用b除以n,得b÷n=q..2(0sr2)

(4)若r2=0,则(a,b)=rn;若r20,则继续用r1除以r2,.…,如此下去,直到能整除为止。

其最后一个余数为0的除数即为(a,b)的最大公约数。

碧海风云

2017-07-26 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
/*辗转相除法求最大公约数、最小公倍数*/
#include <stdio.h>

int main() { 
int m,n;
int m1,n1,rem;
int gcd,lcm;

printf ("请输入两个整数:\n");  
scanf ("%d%d", &m, &n);

m1=m;
n1=n;
if(n1)
while((m1 %= n1) && (n1 %= m1));
gcd = m1+n1;
lcm = m*n/gcd;
printf ("最小公倍数为:%d\n", lcm);

getch (); /*屏幕暂留*/
return 0;
}

运行结果

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张晓晗律师
2011-04-02 · 律师
张晓晗律师
采纳数:2 获赞数:7

向TA提问 私信TA
展开全部
书上有类似的问题,你照猫画虎
#include <stdio.h>
#include <stdlib.h>

int zxgb(int a,int b)
{
int i;
for(i=1;a*i%b;++i);
return a*i;
}

int main()
{
int a,b;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b); //楼上这一句错了
if(a*b==0) { printf("你输入的数据不正确!"); exit(0);} //防止输入0
printf("%d和%d的最小公倍数是:%d\n",a,b,zxgb(a,b)); //楼上这里用判断语句多余了
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戈壁与清潭
2011-04-01 · TA获得超过735个赞
知道小有建树答主
回答量:571
采纳率:57%
帮助的人:124万
展开全部
#include <stdio.h>
#include <stdlib.h>

int zxgb(int a,int b)
{
int i;
for(i=1;a*i%b;++i);
return a*i;
}

int main()
{
int a,b;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b); //楼上这一句错了
if(a*b==0) { printf("你输入的数据不正确!"); exit(0);} //防止输入0
printf("%d和%d的最小公倍数是:%d\n",a,b,zxgb(a,b)); //楼上这里用判断语句多余了
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友289c0c0
2017-07-26 · TA获得超过4183个赞
知道大有可为答主
回答量:1531
采纳率:89%
帮助的人:622万
展开全部
#include<stdio.h>
int main(void)
{
    int m, n, a, b, c;
    scanf("%d%d",&m, &n);
    a = m;
    b = n;
    while(b)
    {
        c = a % b;
        a = b;
        b = c;
    }
    printf("%d\n", m * n / a);

    return 0;
}

以上代码中a是最大公因数,两数相乘除以a就是最小公倍数。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式