题目梗概

T组数据,每组数据输入n,m,问有多少个x满足1<=X<=N 和 gcd (X,N)>=M

思考

我们假设S= gcd(X,N)

那么一定存在a,b使得X=Sa N=Sb  且gcd(a,b)=1

因为 X<=N 即 Sa<=Sb 所以 a<=b

求X的个数即是求a的个数

求a的个数即是求  b的欧拉函数(比b小且与b互质的数的个数)

但是如果 直接枚举s来计算b 一定会TLE,所以我们需要再深入思考。

我们发现枚举S从1-N有一半的次数是浪费掉的,举个例子 N=8 我枚举S为2 计算b=4 到后面我枚举S为2 计算b=2。

所以在S!=b的情况下 我们只需要枚举计算S的同时,再计算一下b.

#include <cstdio>
#include <algorithm>using namespace std;
typedef long long ll;ll Euler(ll n){ll res = n;for(ll i = 2; i*i <= n;i++){if(n%i==0) res = res/i*(i-1);while(n%i==0) n/=i;}if(n>1) res = res / n * (n-1);return res;
}int main(){ll T,n,m,ans;scanf("%lld",&T);while(T--){ans=0;scanf("%lld%lld",&n,&m);for(int i=1;i*i<=n;i++){if(n%i==0){if(i>=m) ans += Euler(n/i);if(i*i!=n && n/i>=m) ans+=Euler(i);}}printf("%lld\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/OIerLYF/p/7502411.html

HDU 2588 GCD相关推荐

  1. HDU 2588 GCD 【Euler + 暴力技巧】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=2588 GCD Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  2. HDU 2588 GCD(欧拉函数)

    GCD 思路 题目要求,对于给定的n,mn, mn,m要求有多少数∑i=1ngcd(i,n)>=m\sum _{i = 1} ^{n} gcd(i, n) >= m∑i=1n​gcd(i, ...

  3. HDU 2588 GCD amp;amp; GCD问题总结

    GCD(一) 题目: The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written ( ...

  4. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)

    先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N i ...

  5. HDU - 4497 GCD and LCM 数论gcd

    传送门 文章目录 题意: 思路: 题意: 给三个数的lcmlcmlcm和gcdgcdgcd,求满足条件的三元组组合个数. 思路: 首先lcmmodgcd==0lcm\bmod gcd==0lcmmod ...

  6. HDU - 4497 GCD and LCM

    题意:给出三个数的gcd,lcm,求这三个数的全部的可能 思路 :设x,y,z的gcd为d,那么设x=d*a,y=d*b,z=d*c.a,b.c肯定是互质的.那么lcm=d*a*b*c,所以我们能够得 ...

  7. hdu 5584 gcd/lcm/数学公式

    input T 1<=T<=1000 x y output 有多少个起点可以走n(n>=0)步走到(x,y),只能从(x,y)走到(x,y+lcm(x,y))/(x+lcm(x,y) ...

  8. hdu 4497 GCD and LCM

    题目意思: 给你三个数的最大公约数G,最小公倍数L,求这样的三位数有多少个. 解: 1   首先如果 L%G!=0  那很明显无解  输出0 2  如果L%G==0  然后 令L=L/G  ,G=1 ...

  9. 算法相关 资源和一些以前记的题

    算法比赛就此不打啦,学了点皮毛混了个省一国二就跑路了(蓝桥杯退役也太真实了),要是能早点知道算法比赛这类东西就好了,大一大二也不至于这么混过去,这样相识与分别也挺奇妙的,因为也没多久,也没什么好怀念的 ...

最新文章

  1. GO语言初识(为go开发android做准备)
  2. 从数据仓库到报表,再到可视化,数字化物流是这么设计架构的
  3. 佩斯大学计算机科学世界排名,美国佩斯大学留学推荐 计算机科学专业
  4. 孙长凯sunck_傅里叶变换红外光谱分析NMDA受体单克隆抗体抗-中国科技论文在线.PDF...
  5. 智伴机器人广西团队_畅想科技 智绘未来——2020年全区乡村学校少年宫科技体验日活动在广西科技馆举办...
  6. linux下的C语言编程(总结篇)
  7. python如何实现日期格式的转换_python开发中时间格式如何转化?
  8. 时隔二十年,《程序员修炼之道》出第二版了!
  9. 使用FileOutputStream和ObjectOutputStream向文本文件中写多个对象的信息(序列化)
  10. NR LTE UMTS GSM CDMA TDS频点频率换算工具
  11. 小米线刷工具 MiFlash 提示长度不能小于 0 参数名 length,无法读取设备解决方法
  12. c语言scanf用法例子,scanf(scanf用法举例)
  13. java给pdf文件加水印
  14. 关于监控摄像头小程序直播使用流程及主要应用
  15. latex并排显示表格
  16. windows下qt android开发
  17. FAST-LIO2代码解析(六)
  18. 长安链大规模数据存储及数据膨胀分析
  19. LC5454.统计全1子矩阵(矩阵统计)
  20. 输入N,求N以内(包括N)的质数之和

热门文章

  1. igmp是哪个层协议_【干货】IGMPv1协议闲聊
  2. pads 文本不能修改_修改PDF文件很难?其实很简单,只是你少了一个好用的PDF编辑器...
  3. SpringBoot中修改MySQL数据库建表方言
  4. JAVA,如何判断点是否在面内
  5. springboot加载配置文件优先级
  6. nohup命令导致nohup.out文件过大处理办法
  7. 微信只显示分享朋友圈和好友  屏蔽其他的分享
  8. 安装hexo,建站并新建博客
  9. 关于SQLServer2005的学习笔记——生日问题
  10. ios app抓包分析