易语言求最大公约数和最小公倍数的代码
答案:3 悬赏:50
解决时间 2021-11-28 10:56
- 提问者网友:斩断情丝
- 2021-11-27 23:24
лл
最佳答案
- 二级知识专家网友:冷态度
- 2021-11-27 23:57
在几千年前,欧几里得提出了一种辗转相除法来求两个数的最大公约数。原理简述如下,详情可参见华罗庚的《数论引导》:设a、b皆为自然数,a>b,则一定有a=b*q1+R1(q1、r1为非负整数)。如果R1=0,则a=b*q1,所以a与b的最大公约数是b,如R1<>0,则有0 0,此时Rn就为ab的最大公约数。
至于求最小公倍数,也可用类似的办法。不过根据一个等式:a*b=ab的最大公约数*ab的最小公倍数(原理大家自己去想啦),可以更简单一点。由此可见,数学知识对编程来说是十分重要的本来我是想求最大公倍数的算法非常非常简单,就没有给出,没想到有人偏偏不依不饶地问算法,只有在这里补充一下了。 其实这个方法最早是我的小学数学老师教的,当然是在数学课上。具体的原理我不讲了(也没什么好讲的),直接给代码子程序:求最小公倍数返回值类型:整数型参数:大数 数据类型:整数型参数:小数 数据类型:整数型局部容器:n 数据类型:整数型局部容器:max 数据类型:整数型max = 大数容器循环首 (1, 小数, 1, n) 如果真 (max % 小数 = 0) 返回 (max) 如果真结束 max = max + 大数容器循环尾 () 返回 (0)
至于求最小公倍数,也可用类似的办法。不过根据一个等式:a*b=ab的最大公约数*ab的最小公倍数(原理大家自己去想啦),可以更简单一点。由此可见,数学知识对编程来说是十分重要的本来我是想求最大公倍数的算法非常非常简单,就没有给出,没想到有人偏偏不依不饶地问算法,只有在这里补充一下了。 其实这个方法最早是我的小学数学老师教的,当然是在数学课上。具体的原理我不讲了(也没什么好讲的),直接给代码子程序:求最小公倍数返回值类型:整数型参数:大数 数据类型:整数型参数:小数 数据类型:整数型局部容器:n 数据类型:整数型局部容器:max 数据类型:整数型max = 大数容器循环首 (1, 小数, 1, n) 如果真 (max % 小数 = 0) 返回 (max) 如果真结束 max = max + 大数容器循环尾 () 返回 (0)
全部回答
- 1楼网友:桃花别处起长歌
- 2021-11-28 01:07
你这个程序能求出来你想要的结果吗?
最大公约数:
int a ,b,i;
if(a>b){
for(i=b;i>1;i--){
if( (a%i==0)&&(b%i==0)){
cout<<i;
break;
}else{
for(i=a;i>1;i--){
if( (a%i==0)&&(b%i==0)){
cout<<i;
break;
}
}
}
最小公倍同理可得。现在手里没编辑器。所在写法也不好自己慢慢看。算法应该很清楚的。
- 2楼网友:一个很哇塞的汉子
- 2021-11-28 00:58
易语言没学过额。。。学的C++
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯