c语言求最大公约数c语言如何求最小公倍数和最大公约数
c语言求最大公约数 时间:2021-07-30 阅读:(
)
C语言中 用函数调用求最大公约数和最小公倍数
#include <stdio.h>
/*求最大公约数和最小公倍数*/
int f(int m,int n)
{
int c;
while(n > 0)
{
c=m%n;
m = n;
n = c;
}
return (m);
}
/*
//求最大公约数和最小公倍数
//递归求最小公倍数
int f(int m,int n)
{
return (n >0)? f(m,m%n):m;
}
*/
int main(void)
{
int m,n,a;
int f(int m,int n);
printf("please input two numbles:");
scanf("%d,%d",&m,&n);
printf("the max is %d
",f(m,n));//最大公约数
printf("the min is %d
",m*n/f(m,n));//最小公倍数
system ("pause");
return 0;
}
参照了百度的gcd,即碾转相除法,是欧几里得的几何原本中的。
用C语言编写一个可以求输入的两个数的最大公约数和最小公倍数的程序。
#include
void main()
{
int m,n,k,min,max,i;
scanf("%d%d",&m,&n);
if(n0;i++)
{
if((m%i==0)&(n%i==0))
{
max=i;
break;
}
}
min=m*n/max;
printf("%d和%d的最大公约数是%d
",m,n,max);
printf("%d和%d的最小公倍数是%d
",m,n,min);
}
这个是我的程序,其中利用了最小公倍数是两个数的乘积除以最大公倍数,希望能够帮到你。
c语言如何求最小公倍数和最大公约数
解题步骤:
1、求最大公约数
对两个正整数a,b如果能在区间[a,0]或[b,0]内能找到一个整数temp能同时被a和b所整除,则temp即为最大公约数。
2、求最小公倍数
对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,则该和数即为所求的最小公倍数。
//穷举法求两数的最大公约数
int divisor(int a,int b)
{
int temp;//定义义整型变量
temp=(a>b)?b:a;//采种条件运算表达式求出两个数中的最小值
while(temp>0){
if(a%temp==0&&b%temp==0)//只要找到一个数能同时被a,b所整除,则中止循环
break;
temp--;//如不满足if条件则变量自减,直到能被a,b所整除
}
return temp;//返回满足条件的数到主调函数处
}
//穷举法求两数的最小公倍数
int multiple(int a,int b)
{
int p,q,temp;
p=(a>b)?a:b;//求两个数中的最大值
q=(a>b)?b:a;//求两个数中的最小值
temp=p;//最大值赋给p为变量自增作准备
while(1){//利用循环语句来求满足条件的数值
if(p%q==0)
break;//只要找到变量的和数能被a或b所整除,则中止循环
p+=temp;//如果条件不满足则变量自身相加
}
return p;
}
扩展资料:
用穷举法解题时,就是按照某种方式列举问题答案的过程。
针对问题的数据类型而言,常用的列举方法一有如下三种:
(1)顺序列举是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举。
(2)排列列举有时答案的数据形式是一组数的排列,列举出所有答案所在范围内的排列,为排列列举。
(3)组合列举当答案的数据形式为一些元素的组合时,往往需要用组合列举。
组合是无序的。
例子如下:在公元五世纪我国数学家张丘建在其《算经》一书中提出了“百鸡问题”:
“鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。
百钱买百鸡,问鸡翁、母、雏各几何?”这个数学问题的数学方程可列出如下:
Cock+Hen+Chick=100
Cock*5+Hen*3+Chick/3=100
显然这是个不定方程,适用于穷举法求解。
依次取Cock值域中的一个值,然后求其他两个数,满足条件就是解。
该问题的C语言程序算法如下:
int Cock,Hen,Chick;/*定义公鸡,母鸡,鸡雏三个变量*/
Cock=0;
while(Cock<=19)/*公鸡最多不可能大于19*/
{Hen=0;
whlie(Hen<=33)/*母鸡最多不可能大于33*/
{Chick=100-Cock-Hen;
if(Cock*15+Hen*9+Chick==300)/*为了方便,将数量放大三倍比较*/
printf("
公鸡=%d
母鸡=%d
雏鸡=%d",Cock,Hen,Chick);
Hen=Hen+1;
}
Cock=Cock+1;
}
参考资料:
百度百科——穷举法
Dynadot 是一家非常靠谱的域名注册商家,老唐也从来不会掩饰对其的喜爱,目前我个人大部分域名都在 Dynadot,还有一小部分在 NameCheap 和腾讯云。本文分享一下 Dynadot 最新域名优惠码,包括 .COM,.NET 等主流后缀的优惠码,以及一些新顶级后缀的优惠。对于域名优惠,NameCheap 的新后缀促销比较多,而 Dynadot 则是对于主流后缀的促销比较多,所以可以各取所...
很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...
每每进入第四季度,我们就可以看到各大云服务商的促销力度是一年中最大的。一来是年底的促销节日活动比较多,二来是商家希望最后一个季度冲刺业绩。这不还没有到第四季度,我们看到有些商家已经蠢蠢欲动的开始筹备活动。比如素有低价VPS收割机之称的Virmach商家居然还没有到黑色星期五就有发布黑五促销活动。Virmach 商家有十多个数据中心,价格是便宜的,但是机器稳定性和速度肯定我们也是有数的,要不这么低的...
c语言求最大公约数为你推荐
CA3445从广州到咸阳机场5月15号机票多少钱magento模板magento系统缩略图大小在哪里修改?智能公共广播系统智能公共广播系统js-3301数码mp3编程器怎么使用云图好看吗云图好看么?handoff怎么用如何令Yosemite使用iPhone的通话功能和Handoff设置nero教程NERO怎么使用?如何修改手机ip安卓手机怎么改ip地址oa系统包含哪些模块OA系统一般包含哪些功能模块?湖北健康码转码申请个人健康随身绿色码怎么申请?kakaotalk是什么kakaotalk怎么加好友
网站空间申请 虚拟主机mysql net主机 哈喽图床 godaddy优惠券 godaddy 免费博客空间 丹弗 天互数据 微信收钱 建立邮箱 韩国名字大全 seednet 服务器托管什么意思 cdn加速是什么 1美金 酷番云 常州联通宽带 香港亚马逊 东莞idc 更多