NOIP 2001普及组 最小公倍数和最大公约数问题 详解
来源:互联网 发布:淘宝怎么推广和宣传 编辑:程序博客网 时间:2024/05/16 00:34
这道题一看上去就是一道十分简单的枚举搜索题,本来还以为要做些精巧操作才能过,后来发现直接暴力枚举就行了,原码如下:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;bool gcd(int a,int b,int divider)//判断最大公约数{ int tmp=min(a,b); for (int i=tmp;i>divider;i--){ if (a%i==0 && b%i==0){//说明有比x更大的公约数,不成立 return false; } } if (a%divider==0 && b%divider==0){ return true; }else{ return false; }}bool lcm(int a,int b,int multiple)//判断最小公倍数 { int tmp=max(a,b); for (int i=tmp;i<multiple;i++){ if (i%a==0 && i%b==0){//说明有比y更小的公倍数,不成立 return false; } } if (multiple%a==0 && multiple%b==0){ return true; }else{ return false; }}int main(){ int x,y,ans=0; cin>>x>>y; /*若x,y为最大公约数和最小公倍数,则p,q两数至少为x,至多为y, 所以>=x,<=y,且它们都,是x的倍数,所以每次都+=x,这样的小剪枝 很重要,否则过不了 */ for (int p=x;p<=y;p+=x){ for (int q=x;q<=y;q+=x){ if (gcd(p,q,x) && lcm(p,q,y)){ ans++; } } } cout<<ans<<endl;}
阅读全文
0 0
- NOIP 2001普及组 最小公倍数和最大公约数问题 详解
- wikioi1012 最大公约数和最小公倍数问题(2001年NOIP全国联赛普及组)
- 1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
- NOIP2001普及组 最大公约数和最小公倍数问题
- codevs 1012 NOIP 2001 最大公约数和最小公倍数问题
- wikioi 1012 最大公约数和最小公倍数 普及组 2001
- NOIP 2001普及组 装箱问题详解
- [noip2001普及(初中)组] 第二题《最大公约数和最小公倍数问题》解题报告
- NOIP 2001-2——最大公约数和最小公倍数问题(简单推导/分解质因数)
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- Linux下搭建SVN云服务器
- hdu6152Friend-Graph(模拟)
- 面试积累-集合框架
- 微信小程序 时间戳转换
- mysql InnoDB引擎支持hash索引吗
- NOIP 2001普及组 最小公倍数和最大公约数问题 详解
- python中的注释
- 单片机模拟pwm调速或调光
- HTTP 接口设计指北
- Java面试题1:synchronized方法调用
- 触发器的增删改(oracle)
- elasticSearch 批量添加索引的数量 Star.hou
- python 处理json文件
- JAVA 反射学习