ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Codeforces 1295D Same GCDs (欧拉定理)

2020-01-30 14:00:53  阅读:421  来源: 互联网

标签:integers gcd xg yg Codeforces Same test 1gcd GCDs


Description:

You are given two integers a and m. Calculate the number of integers xxx such that 0x<m0≤x<m0≤x<m and gcd(a,m)=gcd(a+x,m).gcd(a,m)=gcd(a+x,m).gcd(a,m)=gcd(a+x,m).

Note: gcd(a,b)gcd(a,b)gcd(a,b) is the greatest common divisor of aaa and bbb.

Input

The first line contains the single integer T(1T50)T (1≤T≤50)T(1≤T≤50) — the number of test cases.

Next T lines contain test cases — one per line. Each line contains two integers aaa and m(1a<m1010)m (1≤a<m≤10^{10})m(1≤a<m≤1010).

Output

Print TTT integers — one per test case. For each test case print the number of appropriate xs.x-s.x−s.

Example

input

3
4 9
5 10
42 9999999967

output

6
1
9999999966

Note

In the first test case appropriate xsx-sx−s are [0,1,3,4,6,7][0,1,3,4,6,7][0,1,3,4,6,7].

In the second test case the only appropriate xxx is 000.

题意:

给出两个正整数 aaa 和 mmm ,再给出 xxx 的范围为[0,m)[ 0 , m )[0,m),现在要求满足 gcd(a,m)=gcd(a+x,m)gcd ( a , m ) = gcd ( a + x , m )gcd(a,m)=gcd(a+x,m) 时 xxx 的个数。

首先提取 aaa 和 mmm的最大公约数 ggg,令 a=xgm=yga=xg,m=yga=xg,m=yg

题意就可转化为需要使得 gcd(xg,yg)=gcd(xg+z,yg)=ggcd(xg,yg) = gcd(xg+z,yg) = ggcd(xg,yg)=gcd(xg+z,yg)=g

显然可知 zzz为 ggg 的倍数,令 z=kg,k[0,y)z = kg,k ∈[0,y)z=kg,k∈[0,y)

那么所有满足 gcd(x+k,y)=1gcd(x+k,y) = 1gcd(x+k,y)=1的 kkk 都可以,即求 [x,x+y)[x,x+y)[x,x+y) 中与 yyy 互素数的个数。

因为 gcd(x,y)=gcd(y,y%x)gcd(x,y) = gcd(y,y\%x)gcd(x,y)=gcd(y,y%x),故当 x+k(y,x+y)x+k∈(y,x+y)x+k∈(y,x+y) 时,gcd(x+k,y)=gcd(y,(x+k)%y)gcd(x+k,y) = gcd(y,(x+k)\%y)gcd(x+k,y)=gcd(y,(x+k)%y),

因为 x<y,k[0,y)x<y,k ∈[0,y)x<y,k∈[0,y) ,所以 gcd(x+k,y)=gcd(y,(x+k)y)=1gcd(x+k,y)=gcd(y,(x+k)-y) =1gcd(x+k,y)=gcd(y,(x+k)−y)=1

x+ky(0,x)x+k-y∈(0,x)x+k−y∈(0,x)

所以 (y,x+y)(y,x+y)(y,x+y) 中与 yyy 互素数的个数与 (0,x)(0,x)(0,x) 中与与 yyy 互素数的个数相等。

所以答案就是 [1,y][1,y][1,y] 中与 yyy 互素数的个数。

邵光亮 发布了611 篇原创文章 · 获赞 390 · 访问量 20万+ 他的留言板 关注

标签:integers,gcd,xg,yg,Codeforces,Same,test,1gcd,GCDs
来源: https://blog.csdn.net/qq_43627087/article/details/104114443

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有