same gcd

题解

题意

​ 给定a,b,问有多少个x(0<=x<b)满足gcd(a,b)=gcd(a+x,b)

思路

d = g c d ( a , b ) = g c d ( a + x , b ) → 1 = g c d ( a + x d , b d ) d=gcd(a,b)=gcd(a+x,b)\to 1=gcd(\frac{a+x}{d},\frac{b}{d}) d=gcd(a,b)=gcd(a+x,b)→1=gcd(da+x​,db​)

a + x d ∈ [ a d , a d + b d ) \frac{a+x}{d}\in[\frac{a}{d},\frac{a}{d}+\frac{b}{d}) da+x​∈[da​,da​+db​)

题目转化成,求在上述范围内与b/d互质的个数,进而转化成求b/d的欧拉函数
e u l e r s [ 1 , b d ) ≡ e u l e r s [ a d , a d + b d ) eulers[1,\frac{b}{d})\equiv eulers[\frac{a}{d},\frac{a}{d}+\frac{b}{d}) eulers[1,db​)≡eulers[da​,da​+db​)

代码

#include <iostream>using namespace std;
typedef long long LL;LL gcd(LL a, LL b)  // 欧几里得算法
{return b ? gcd(b, a % b) : a;
}LL phi(LL x){LL res=x;for(int i=2;i<=x/i;i++){if(x%i==0)res=res/i*(i-1);while(x%i==0)x/=i;}if(x!=1)res=res/x*(x-1);return res;
}int main()
{int t;cin>>t;while(t--){LL a,b;//注意数据范围cin>>a>>b;cout<<phi(b/gcd(a,b))<<'\n';//题目分析转换完之后,代码实现其实就是copy模版}return 0;
}

数论-欧几里得最大公约数- same gcd相关推荐

  1. [2016 NUIST 程序设计竞赛] B. 欧几里得的公约数

    描述 古希腊数学家欧几里得被称为"几何之父",他最著名的著作<几何原本>是欧洲数学的基础,提出五大公式,欧几里得几何,被广泛的认为是历史上最成功的教科书.欧几里德算法又 ...

  2. 数学--数论--欧几里得定理和拓展欧几里得定理

    欧几里得定理: gcd(a, b) = gcd(b, a%b) 证明: 我们首先约定:m = gcd(a,b) , n = gcd(b, q) , a = b*p +q.(这里的gcd含义跟上面一样, ...

  3. 数论:欧几里得与扩展欧几里得算法

    文章目录 欧几里得算法 历史发展 表示 证明 代码 例题 扩展欧几里得算法 表示 求解方法 代码 其他定理: 例题 欧几里得算法 历史发展 欧几里得算法用来求得两个数的最大公约数,大约公元前300年首 ...

  4. 欧几里得最大公约数算法

    本文地址:http://www.cnblogs.com/HarryGuo2012/p/4785167.html 最大公约数 想必大家小学就学过什么事最大公约数吧,现在给出一个数学上的定义:定义$g$是 ...

  5. 数论 欧几里得与扩展欧几里得

    欧几里得算法: 求a,b的最大公约数 gcd(a,b)= gcd(b,a%b) ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b); } 扩展欧几里得算法: 如果a ...

  6. 数论--欧几里得和扩展的欧几里得定理

    欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd( ...

  7. 证明欧几里得最大公约数算法

    描述 如果p和q的最大公约数是r,那么q和p%q的最大公约数也是r. 证明 讨论范围p q r都是自然数 必然存在p = mq + n (m n为自然数), 其中n = p % q. 等式两边除以r得 ...

  8. acm数论之欧几里得gcd

    1.欧几里得定理 同余定理的公式:(a+b)%mod=(a%mod+b%mod)%mod (a*b)%mod=(a%mod*b%mod)%mod 扩展欧几里得也有自己的一个公式:a*x+b*y=gcd ...

  9. 欧几里得定理与扩展欧几里得定理

    欧几里的定理(辗转相除法): gcd(a,b) = gcd(b,a%b) gcd(a,b)表示a,b的最大公约数 证明: 设 a > b c = a%b a = k * b + c (k为某个整 ...

最新文章

  1. 【html 及 HTML5所有标签汇总】★★★
  2. mysql报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题
  3. AE中获得datalayer所对应的data的文件路径和文件名
  4. 上采样(放大图像)和下采样(缩小图像)(最邻近插值和双线性插值的理解和实现)
  5. wkhtmltopdf 水印 背景_wkhtmltopdf + echarts 转 PDF
  6. Delphi2CS破解 Delphi 转换C#
  7. 洛谷P5108 仰望半月的夜空(后缀数组)
  8. python实现雪花动态图_如何通过雪花算法用Python实现一个简单的发号器
  9. SpringBoot 2.0参数校验Hibernate Validator
  10. Adobe Illustrator CS3
  11. Air202掉坑日记(1)——烧录固件(AT版本)
  12. Swing组件与监听器
  13. Activity-的-36-大难点,你会几个?,android游戏开发实践指南
  14. Serial Programming HOWTO
  15. mysql的存储模型_一种BIM模型数据的数据库存储格式的制作方法
  16. Linux系统 PDF转图片
  17. Ktor: Kotlin Web后端框架 快速开始入门
  18. 搭建一个简单的知识问答系统
  19. 盖档案骑缝章的样本_骑缝章没盖全合同生效吗--最新范本
  20. 【03】尽可能使用const

热门文章

  1. 上三角形矩阵和下三角形矩阵的特征值是对角线元素
  2. 储能系统下垂控制,输出电流按虚拟电阻比例分配,并补偿有下垂系数带来的母线压降
  3. python绘制气象海洋不规则空间站点数据的填色图
  4. Unity 读取和修改XML文档
  5. PDF怎么提取页面,你需要的方法就在这
  6. matplotlib工具栏源码探析四(自定义工具项图标)
  7. ES自定义Analyzer扩展IK分词
  8. excel制作动态数据分析报表
  9. 一次破解TP-Link WAR308路由器的经历
  10. MQL5 COOKBOOK: 使用不同的打印模式