C语言程序 设计:用辗转相除法求两个正整数的最大公约数

编写程序... 编写程序 展开
 我来答
一页凌风
2009-04-17 · TA获得超过1907个赞
知道小有建树答主
回答量:434
采纳率:25%
帮助的人:389万
展开全部
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*交换两个数,使大数放在num1上*/
{ temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
闫忆枫机业
2020-04-13 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:654万
展开全部
#define
_CRT_SECURE_NO_WARNINGS
#include

#include

int
main()
{
int
a,
b,r;
scanf("%d
%d",
&a,
&b);
while
(b
!=
0)//当其中一个数为0,另一个数就是两数的最大公约数
{
r
=
a%b;
a
=
b;
b
=
r;
}
printf("最大公约数%d\n",
a);
system("pause");
}
例子:
105252
252%105=42;
105%42=21;
42%21=0;
即21为105与252的最大公约数
扩展资料:
while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:
一、在while语句中设定条件语句,条件不满足,则循环自动停止。
如:只输出3的倍数的循环;可以设置范围为:0到20。
二、在循环结构中加入流程控制语句,可以使用户退出循环。
1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。
2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
changfapiaosa
2009-04-17 · TA获得超过214个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:171万
展开全部
我发现C中这个算法最乱了。现在一般都用这个算法。a,b.假如a比较小,那么从a到1不断地做减法,知道满足某个数能整除a,b.
int GetCommonDivisor(int a, int b)
{
int i,temp=a<b?a:b;
for(i=temp;i>0;i--)
if(a%i==0&&b%i==0)
break;
return i;

}

这个满足公约数的意义,理解起来简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-04-17
展开全部
#include"stdio.h"
main()
{
int m,n,t;
printf("m,m=");
scanf("%d%d",&m,&n);
while(n) /*当n不为0时进行循环*/
{t=m%n
m=n;
n=t;
}
printf("%d",m);
}
本人刚学,请多多指教。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十五十二和橘子Ec8a4
2009-04-17 · 超过16用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
int f(int x ,int y)
{
while(y!=0)
return f(y,x%y);
return x;
}
递归加辗转相除法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式