| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12162 人关注过本帖
标题:[求助]求三个数的最大公约数和最小公倍数
只看楼主 加入收藏
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
 问题点数:0 回复次数:17 
[求助]求三个数的最大公约数和最小公倍数
有C语言编写下列程序:输入三个正整数a,b,c,求其最大公约数和最小公倍数。
搜索更多相关主题的帖子: 最大公约数 最小公倍数 
2006-02-02 01:55
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 

最大公约数:先在这三个数x,y,z中找最小的(假设是x最小) ,然后用三个数都对x求模,如果余数为0即可break;else k=x,k--,再用这三个数对%k 。。。

大致这样剩下的自己想,不懂再问好了


喜欢宁静的平凡生活
2006-02-02 11:16
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 

明白了,谢谢。意思是从最小的入手,一次一次的去除,从大到小,只到都可以整除时就可以了。但是我觉得程序有点复杂,还有没有更捷径的方法啊?请教。


2006-02-02 16:50
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 

#include"stdio.h"
main()
{
int a1,a2,a3,b,b1,b2,b3;
scanf("%d%d%d",&a1,&a2,&a3);
b1=a1; b2=a2;b3=a3;
if(a1>a2){b=a1;a1=a2;a2=b;}
if(a1>a3){b=a1;a1=a3;a3=b;}
if(a2>a3){b=a2;a2=a3;a3=b;}
while(a2%a1!=0||a3%a1!=0)a1--;
printf("最小公约数是:%d",a1);
printf("最大公倍数是:%d",b1*b2*b3/a1);

}


2006-02-02 18:01
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 
中这样的吗?

2006-02-02 18:02
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 
以下是引用黑飞狐在2006-2-2 16:50:00的发言:

明白了,谢谢。意思是从最小的入手,一次一次的去除,从大到小,只到都可以整除时就可以了。但是我觉得程序有点复杂,还有没有更捷径的方法啊?请教。

应该有,你有没有做过一道题是求俩个数的最小公倍数和最大公约数,可以参考他的做法

至于你的程序有点问题,在这里我先不说,你自己考虑一下,学c最重要还是学会自己找到问题的所在,这是别人教我的


喜欢宁静的平凡生活
2006-02-02 18:49
羊爱上了狼
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-1-30
收藏
得分:0 
#include<stdio.h>
main()
{
int a,b,i,t,half,j,k,beishu;
printf("请输入两个数:");
scanf("%d,%d",&a,&b);
if(a>b)
{t=a;a=b;b=t;}
half=a/2;
for(i=half;i>0;i--)
{if(a%i==0&&b%i==0)//最大公约数
break;}
j=a/i;//质因数
k=b/i;//质因数
beishu=i*j*k;//最小公倍数
printf("max=%d,min=%d",i,beishu);
}
我临时写的,楼主参考一下

掌握技术为国人的软件事业发展作出贡献!!!!这是我的愿望!!!
2006-02-02 20:26
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 
#include"stdio.h"
main()
{
int a1,a2,a3,b,b1,b2,b3;
printf("输入三个数求其最大公约数和最小公倍数(数与数之间用逗号隔开):\n");
scanf("%d,%d,%d",&a1,&a2,&a3);
b1=a1; b2=a2;b3=a3;
if(a1>a2){b=a1;a1=a2;a2=b;}
if(a1>a3){b=a1;a1=a3;a3=b;}
if(a2>a3){b=a2;a2=a3;a3=b;}
while(a2%a1!=0||a3%a1!=0)a1--;
printf("最大公约数是:%d",a1);
printf("最小公倍数是:%d",a1*(b1/a1)*(b2/a1)*(b3/a1));
}

[此贴子已经被作者于2006-2-3 17:10:54编辑过]


2006-02-03 15:43
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 
七楼的我看不懂是什么意思?程序运行的目的究竟是什么?

[此贴子已经被作者于2006-2-3 15:45:12编辑过]



2006-02-03 15:44
黑飞狐
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-12
收藏
得分:0 

abc三数,先按辗转法求ab最大公约数,再求bc最大公约数,然后再求两个最大公约数的最大公约数,结果就是三数的最大公约数。对吧。


2006-02-03 16:03
快速回复:[求助]求三个数的最大公约数和最小公倍数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012329 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved