hdu2588 GCD
题意:Given integers N and M, how many integer X satisfies 1<=X<=N and (X,N)>=M.
0.d=gcd(x,n) >= m d是x,n的公共的最大公约数、
1.找到n的因数(p)>=m gcd(x,n)=p
2.=> gcd(x/p,n/p) = 1
3.欧拉函数:φ(n) = 小于 n 且和 n 互质的正整数(包括1)的个数 (n为正整数)
#include <bits/stdc++.h>
#define X 10005
#define inF 0x3f3f3f3f
#define PI 3.141592653589793238462643383
#define IO ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
typedef long long ll;
typedef unsigned long long Ull; //2^64
const int maxn = (int)1e6 + 10;
const int MOD = 9973;
const ll inf = 9223372036854775807;
ll primer[maxn];
ll a[maxn];
void ex_gcd(ll a, ll b, ll &d, ll &x, ll &y) { if (!b) { x = 1; y = 0; d = a; } else { ex_gcd(b, a%b, d, y, x); y -= x * (a / b); }; }
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
ll lcm(ll a, ll b) { return b / gcd(a, b)*a; }
ll inv_exgcd(ll a, ll m) { ll d, x, y;ex_gcd(a, m, d, x, y);return d == 1 ? (x + m) % m : -1; }
ll inv1(ll b) { return b == 1 ? 1 : (MOD - MOD / b)*inv1(MOD%b) % MOD; }
ll crt(int n,int *c,int *m){ll M=1,ans=0;for(int i=0;i<n;++i) M*=m[i];
for(int i=0;i<n;++i) ans=(ans+M/m[i]*c[i] %M *inv_exgcd(M/m[i],m[i]))%M; return ans;}
ll N;
int cnt;
ll fac[maxn];
void factor(ll n)
{memset(fac,0,sizeof(fac)),cnt=0;for(int i=1;i*i<=n;++i){if(n%i==0){fac[cnt++]=i;if(i*i!=n)fac[cnt++]=n/i;}}
}
ll eular(ll n)
{ll ans=n;for(int i=2;i*i<=n;++i){if(n%i==0){ans-=ans/i;while(n%i==0)n/=i;}}if(n>1) ans-=ans/n;return ans;
}
int main()
{int t;cin>>t;ll n,m;while(t--){cin>>n>>m;factor(n);sort(fac,fac+cnt);int pos=lower_bound(fac,fac+cnt,m)-fac;ll ans=0;for(int i=pos;i<cnt;++i){ans+=eular(n/fac[i]);}cout<<ans<<endl;}return 0;
}
hdu2588 GCD相关推荐
- ICPC程序设计题解书籍系列之九:罗勇军《算法竞赛入门到进阶》
罗书<算法竞赛入门到进阶>题目一览 第1章 算法竞赛概述 HDU1000 HDU1089-HDU1096 A+B for Input-Output Practice (I)-(VIII)( ...
- CF803C Maximal GCD
洛谷 CF 分析 考虑从 \(k\) 个数的 \(gcd\) 入手. 设他们的 \(gcd\) 为 \(d\) .则有 \(d|n\) ,那么这 \(k\) 个数都除以 \(d\) 剩下的和即为 \( ...
- 数论(一)——素数,GCD,LCM
这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...
- [CQOI2014]数三角形 组合数 + 容斥 + gcd
推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(下)
2017-07-08 remember17 Cocoa开发者社区 7NSOperation的理解与使用 No.1:NSOperation简介 NSOperation是基于GCD之上的更高一层封装,NS ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)
2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...
- GCD 容易让人迷惑的几个小问题
来源:涂耀辉 链接:http://www.jianshu.com/p/ff444d664e51 写在开头: 本文旨在阐述一些大家容易产生迷惑的GCD相关内容,如果是需要了解一些GCD概念或者基础用法, ...
- hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
- 【Project Euler】530 GCD of Divisors 莫比乌斯反演
[题目]GCD of Divisors [题意]给定f(n)=Σd|n gcd(d,n/d)的前缀和F(n),n=10^15. [算法]莫比乌斯反演 [题解]参考:任之洲数论函数.pdf 这个范围显然 ...
最新文章
- 互联网50年类脑架构技术演化图
- QRCode.js -- 用 Javascript 生产二维码
- acer p245 linux换win7,宏碁Acer笔记本预装Win8改Win7设置教程
- 微软发布人工智能教育与学习共建社区
- java selenium (十二) 操作弹出窗口
- WordPress插件-Erphp Weixin Scan关注微信公众号一键登录网站
- 五一小长假|不得不说的一些话
- 禁用任何未使用的端口com_CentOS7 - 使用Fail2ban保护SSH
- python核心装饰_《python核心编程》中高级闭包和装饰器理解?
- github-新建文件夹
- LeetCode(8) - String to Integer (atoi)
- Win32 Application和Win32 Console Application
- abandon connection, owner thread: DubboServerHandler错误原因
- Start request repeated too quickly解决方法
- javascript 删除节点
- 配置Oracle到MySQL透明网关
- 用 StarRocks on ES 实现 分词
- (原创)报考计算机博士之前应该注意的几个问题---写给应届硕士毕业生
- 【转】AI芯片:寒武纪NPU设计分析(DianNao)
- 浅谈DevSecOps工具链中的源代码安全保障
热门文章
- 百度得来的所谓“三层结构”
- “Java引领技术人生”专题讲座北京、上海站圆满举行
- 服务器安装Windows Server + Ubuntu双系统
- 管理者如何提升下属执行力---视频学习记录
- android 广播观察者,BroadcastReceiver和Activity之间的通信 – android
- Flutter RichText支持自定义文本溢出效果
- 前端页面适配的rem换算
- 在使用chrome调试angular2的时候出现下面问题
- 用Python玩转词云
- uwsgi安装过程中遇到的问题