编程实现输入两个整数,输出其最大公约数和最小公倍数。

编程实现输入两个整数,输出其最大公约数和最小公倍数。编程实现输入两个整数,输出其最大公约数和最小公倍数。要求编写一个函数gcd用辗转法求两个数的最大公约数。在主函数中实现... 编程实现输入两个整数,输出其最大公约数和最小公倍数。编程实现输入两个整数,输出其最大公约数和最小公倍数。要求编写一个函数gcd用辗转法求两个数的最大公约数。在主函数中实现:数据的输入,调用gcd函数求最大公约数,在此基础上再求最小公倍数,最后输出结果
一定要简单点。
展开
 我来答
问明6E
高粉答主

2019-06-14 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.4万
展开全部

举例:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。

代码:

#include <stdio.h>

int main(void)

{

int gcd, lcm, m, n;

int repeat, ri;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++)

{

scanf("%d", &m);

scanf("%d", &n);

if(m <= 0 || n <= 0)

{  printf("m <= 0 or n <= 0");

continue;

}

for(gcd=m; gcd >= 1; gcd--){

if(m % gcd == 0 && n % gcd == 0) break;

}

lcm = m * n / gcd;

printf("%d, %d\n",lcm, m, n, gcd, m, n);

}

}

运行效果:

输入输出示例:括号内为说明

输入:

3(repeat=3)

37(m=3,n=7)

244(m=24,n=4)

2418(m=24,n=18)

输出:

21,1.

24,4.

72,6.

扩展资料:

辗转相除法:

#include <stdio.h>

int main()

{

int m,n;

scanf("%d %d",&a,&b);  //输入两个整数

int num1,num2,c; //num1,num2作为计算时的变量,c作为中间变量

if(a>=b)  {num1=a; num2=b; }

else      {num1=b; num2=a; }//通过比较对num1和num2赋值,便于计算

while(num2>0){

c=num1%num2;

num1=num2;

num2=c;}//辗转相除,num2=0时,num1=最大公因数

printf("最大公因数:%d\n",num1);

printf("最小公倍数:%d\n"m*n/num1);

return 0;

}

xuzhouliuying
高粉答主

推荐于2017-12-16 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部
#include <stdio.h>
#include <math.h>

int gcd(int a,int b)
{
int k=1;
while (k!=0)
{k=b%a;b=a;a=k;}
return b;
}

int main()
{
int m,n,i,j,t;
printf("请输入两个正整数:  ");
scanf("%d,%d",&m,&n);
if(m>n)
{t=m;m=n;n=t;}
i=gcd(m,n);
j=m*n/i;
    printf("\n%d和%d的最大公约数为%d,最小公倍数为%d。\n\n",m,n,i,j);
}

执行示例:

生成的可执行文件:



本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
惠企百科
2022-12-01 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

举例:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。

代码:

#include <stdio.h>

int main(void)

{

int gcd, lcm, m, n;

int repeat, ri;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++)

{

scanf("%d", &m);

scanf("%d", &n);

if(m <= 0 || n <= 0)

{  printf("m <= 0 or n <= 0");

continue;

}

for(gcd=m; gcd >= 1; gcd--){

if(m % gcd == 0 && n % gcd == 0) break;

}

lcm = m * n / gcd;

printf("%d, %d\n",lcm, m, n, gcd, m, n);

}

}

运行效果:

输入输出示例:括号内为说明

输入:

3(repeat=3)

37(m=3,n=7)

244(m=24,n=4)

2418(m=24,n=18)

输出:

21,1.

24,4.

72,6.

扩展资料:

辗转相除法:

#include <stdio.h>

int main()

{

int m,n;

scanf("%d %d",&a,&b);  //输入两个整数

int num1,num2,c; //num1,num2作为计算时的变量,c作为中间变量

if(a>=b)  {num1=a; num2=b; }

else      {num1=b; num2=a; }//通过比较对num1和num2赋值,便于计算

while(num2>0){

c=num1%num2;

num1=num2;

num2=c;}//辗转相除,num2=0时,num1=最大公因数

printf("最大公因数:%d\n",num1);

printf("最小公倍数:%d\n"m*n/num1);

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桐含莲白羊
2016-12-18 · 超过164用户采纳过TA的回答
知道小有建树答主
回答量:801
采纳率:0%
帮助的人:152万
展开全部
#include <stdio.h>

int main (void)
{
int m, n, p, tmp;

printf ("Please type in two number:\n");
scanf ("%i %i", &m, &n); //输入两个数,分别放入m, n
p=m*n; //先把两数的积算出来,后面m和n的值会有变

while (n!=0){
tmp=m%n;
m=n;
n=tmp; //这段是求最大公约数的算法
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式