穷举法求最大公约数和最小公倍数
来源:互联网 发布:sql随机11序号 编辑:程序博客网 时间:2024/04/29 13:19
穷举法(也叫枚举法),穷举法求两个正整数的最大公约数的解题步骤:
从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数 。
①定义1:对两个正整数a,b如果能在区间[a,0]或[b,0]内能找到一个整数temp能同时被a和b所整除,则temp即为最大公约数。
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); //返回满足条件的数到主调函数处}
②定义2:对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,则该和数即为所求的最小公倍数。
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);}
int main(){ int m,n,t1,t2; printf("please input two integer number:"); scanf_s("%d%d",&m,&n); t1=divisor(m,n); printf("The highest common divisor is %d\n",t1); t2=multiple(m,n); printf("The least common multiple is %d\n",t2); return 0;}
阅读全文
0 0
- 穷举法求最大公约数和最小公倍数
- c++穷举法求最大公约数和最小公倍数的实例中如何调用max和min函数
- (初学者)求最大公约数与最小公倍数之穷举法
- 求最大公约数与最小公倍数(穷举)
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最小公倍数和最大公约数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数
- 各版本KMS秘钥KMS的GVLK秘钥
- GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战
- Difference between JOIN and JOIN FETCH in JPA
- PHP之上传文件
- 广电系统卫星信号ASI数据转成UDP协议流进入流媒体系统互联网分发
- 穷举法求最大公约数和最小公倍数
- NAT(网络地址转换)(四)
- python入门(washer)
- 版本控制大致描述
- 安装oracle后实例不存在:Oracle报错 ORA-01078
- GCC 库搜索路径:
- 小明的烦恼
- 公司内部,怎么修改内网ip地址,即私有地址,并且可以上公网即互联网?
- Win7不显示移动硬盘盘符的解决方法