Codeforces1295D. Same GCDs (欧拉函数)
2024-08-28 13:42:45
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 ;
}
最新文章
- Mono for android 如何动态添加View,线程内部如何更新UI.
- 如何给开源的DUILib支持Accessibility
- apache 访问出现403 Forbidden
- 基于php的snmp管理端开发
- Deep Learning 1_深度学习UFLDL教程:Sparse Autoencoder练习(斯坦福大学深度学习教程)
- java并发的理解
- ios用户控件
- 如何进行js动态生成option?如何实现二级连动?
- [linux]segvcatch简单使用
- React Native 系列(二) -- React入门知识
- Jmeter遇到的坑
- GraphCuts算法解析,Graphcuts算法求最大流,最小割实例
- 流畅的Python——切片
- python第四十九课——对象序列化与反序列化
- jmeter(五)JDBC Request
- day9-13 linux基础
- 关于WEB前端开发的工具
- js中属性类型:数据属性与访问器属性
- 【3-28】JavaScript的DOM操作
- render, render_to_response, redirect,
热门文章
- Python和Anoconda和Pycharm安装教程
- MSSQL sqlserver 统计";一个字符串";在";另一个字符串";中出现的次数的方法
- mybatis配置--->; mybatisConfig.xml 配置加接数据源
- VMware 安装CentOS8 教程
- 小程序上拉触底&;下拉加载
- libgdiplus安装配置
- Linux——基础之vi编辑器,编辑器之神!
- PHP0001:PHP环境搭建
- C#加密与解密(DES\RSA)学习笔记
- JavaSE学习笔记(2)---面向对象基础