传送门

一.暴力枚举(加了点优化)

#include <cstdio>int x, y, ans;inline int gcd(int x, int y)
{return !y ? x : gcd(y, x % y);
}inline int lcm(int x, int y)
{return x / gcd(x, y) * y;
}int main()
{int i, j;scanf("%d %d", &x, &y);for(i = x; i <= (y >> 1); i += x)for(j = i; j <= (y >> 1); j += x)if(gcd(i, j) == x && lcm(i, j) == y)ans++;for(i = x; i <= y; i += x)if(gcd(i, y) == x && !(y % i))ans++;ans <<= 1;printf("%d\n", ans);return 0;
}

二.降维

通过关系式

  • x * y == gcd(x, y) * lcm(x, y)

可以枚举 x,根据等式求 y

#include <cstdio>int x, y, ans;inline int gcd(int x, int y)
{return !y ? x : gcd(y, x % y);
}inline int lcm(int x, int y)
{return x / gcd(x, y) * y;
}int main()
{int i, j;scanf("%d %d", &x, &y);for(i = x; i <= y; i++){j = x * y / i;if(gcd(i, j) == x && lcm(i, j) == y) ans++;}printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/zhenghaotian/p/7050192.html

[luoguP1029] 最大公约数和最小公倍数问题(数论)相关推荐

  1. 第十二单元 数论算法12.1 同余的性质12.2 最大公约数、最小公倍数

    第十二单元 数论算法 12.1 同余的性质! 注意下面三个式子,它可以保证在计算中不会发生溢出.  (a+b) mod m=(a mod m+b mod m) mod m  (a-b) mod m ...

  2. 数论 —— 最大公约数与最小公倍数

    [概念] 1.公约数:有 k 个非零整数 ,若 ,s.t. ,则称 d 为  的公约数. 2.最大公约数:公约数中最大的一个数称为最大公约数,记为: 注:   ① 最大公约数一定是存在的,其最小值为 ...

  3. c语言最大公约数和最小公倍数_五年级奥数课堂之七:公因数和公倍数

    乘积尾0的个数 公因数和公倍数的基本概念 公因数的释义 给定若干个整数,如果有一个(些)数是它们共同的因数,那么这个(些)数就叫做它们的公因数.而全部公因数中最大的那个,称为这些整数的最大公因数. 公 ...

  4. c语言求a b 最大公约数和最小公倍数,常见算法:C语言求最小公倍数和最大公约数三种算法...

    最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,当中一个最小的公倍数是他们的最小公倍数,相同地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接 求 ...

  5. python最大公约数和最小公倍数的求法_最大公约数和最小公倍数的求法分析

    简介 求最大公约数和最小公倍数可能是编程中最常见的几个基本问题了.因为他们的基本概念基本上很早的时候就知道了,对他们的求法和他们之间的关系都比较有意思. 基本的数学性质 先从最大公约数这一部分开始吧. ...

  6. Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数

    ylbtech-Arithmetic:Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数 1.A,Demo(案例) 输入两个正整数m和n,求其最大公约数和最小 ...

  7. 【算法总结】数学问题-最大公约数和最小公倍数

    [算法总结]最大公约数和最小公倍数 一.最大公约数(GCD:greatest common divisor) 欧几里得算法: 若 a.b 全为零则它们的最大公约数不存在:若 a.b 其中之一为零,则它 ...

  8. ACMNO.22 C语言-公约公倍2 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 输入 两个数 输出 最大公约数 最小公倍数

    题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数, 用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 3 ...

  9. ACMNO.7 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35

    题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35 来源/分类 C语言 示例照片: 设计思路: 本题最难的 ...

最新文章

  1. 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...
  2. Windows客户端C/C++编程规范“建议”——变量和常量
  3. 10个超级有用、必须收藏的PHP代码样例
  4. Android studio 配置使用maven
  5. oracle dg巡检,oracle dg状态检查及相关命令
  6. Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
  7. hdu 4619 Warm up 2 (二分匹配)
  8. 字体的基础知识:中文字体区分练习
  9. nvm use报错exit status 1解决方法
  10. P2394 yyy loves Chemistry I
  11. 爆文标题怎么写,分享四个吸睛标题的万能套路写法,新手速看!
  12. android studio基础教程:2.程序在哪写
  13. Android OTA releasekey 替换
  14. 34. 实战:基于某api实现歌曲检索与下载(附完整源代码)
  15. 2022年的第一篇程序人生。。。
  16. python中loc和iloc
  17. PDF文件有密码怎么办 PDF密码解除的方法
  18. 视频教程:YUV420和RGB相互转换--C++实现(二)
  19. php毕业设计 基于php+mysql电子书阅读系统毕业设计开题报告功能参考
  20. 无水印视频免费素材 抖音短视频特效玩法技巧

热门文章

  1. 怎样在sqlite3上执行SQL语句
  2. protel PCB布线精华文章
  3. Win7中的文件关联注册表
  4. output怎么用_如何用 C++ 写一个可编程软件渲染器?
  5. html表单赋值提交,jQuery自动给表单赋值
  6. ant构建项目迁移到gradle_Gradle构建工具
  7. java rsa_java中RSA加解密的实现
  8. anaconda3卸载python_机器学习Python编程环境:VSCode+Anaconda
  9. python集合的基本操作不包括_Python基础知识储备,List集合基本操作大盘点
  10. php导出excel出现乱码,php导出数据到excel出现乱码的解决办法