https://codeforces.com/contest/1295/problem/D

设gcd(a,m)= n,那么找gcd(a +x ,m)= n个数,其实就等于找gcd((a+x)/n,m/n) = 1的个数,等价于求m/n的欧拉函数

 #include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll euler_phi(ll n) {
ll m = ll(sqrt(n + 0.5));
ll ans = n;
for (ll i = ; i <= m; i++)
if (n % i == ) {
ans = ans / i * (i - );
while (n % i == ) n /= i;
}
if (n > ) ans = ans / n * (n - );
return ans;
}
ll gcd(ll a, ll b) {
if (b == ) return a;
return gcd(b, a % b);
}
int main()
{
int t;
cin>>t;
while(t--){
ll a,m;
cin>>a>>m;
m=m/gcd(a,m);
ll x = euler_phi(m);
cout<<x<<endl;
}
return ;
}

最新文章

  1. Mono for android 如何动态添加View,线程内部如何更新UI.
  2. 如何给开源的DUILib支持Accessibility
  3. apache 访问出现403 Forbidden
  4. 基于php的snmp管理端开发
  5. Deep Learning 1_深度学习UFLDL教程:Sparse Autoencoder练习(斯坦福大学深度学习教程)
  6. java并发的理解
  7. ios用户控件
  8. 如何进行js动态生成option?如何实现二级连动?
  9. [linux]segvcatch简单使用
  10. React Native 系列(二) -- React入门知识
  11. Jmeter遇到的坑
  12. GraphCuts算法解析,Graphcuts算法求最大流,最小割实例
  13. 流畅的Python——切片
  14. python第四十九课——对象序列化与反序列化
  15. jmeter(五)JDBC Request
  16. day9-13 linux基础
  17. 关于WEB前端开发的工具
  18. js中属性类型:数据属性与访问器属性
  19. 【3-28】JavaScript的DOM操作
  20. render, render_to_response, redirect,

热门文章

  1. Python和Anoconda和Pycharm安装教程
  2. MSSQL sqlserver 统计&quot;一个字符串&quot;在&quot;另一个字符串&quot;中出现的次数的方法
  3. mybatis配置---&gt; mybatisConfig.xml 配置加接数据源
  4. VMware 安装CentOS8 教程
  5. 小程序上拉触底&amp;下拉加载
  6. libgdiplus安装配置
  7. Linux——基础之vi编辑器,编辑器之神!
  8. PHP0001:PHP环境搭建
  9. C#加密与解密(DES\RSA)学习笔记
  10. JavaSE学习笔记(2)---面向对象基础