BZOJ2818 - Gcd

BZOJ2818 - Click Here

  

Description

  给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对。

  

Input

  一个整数N

  

Output

  如题

  

Solutions

  题目要求$gcd(x,y)=k$,其中k为素数。

  根据原式易得$gcd(\frac{x}{k},\frac{y}{k})=1​$(由定理$n \times gcd(a,b)=gcd(na,nb)​$得到,具体证明看算导)。

  令$x’=\frac{x}{k},y’=\frac{y}{k}$,则能够对答案产生贡献的点对$(x’ \, , \, y’)$的必要前提是$x’ \times k \leq n,y’ \times k \leq n$,即$x’ \leq \lfloor \frac{n}{k} \rfloor \, , \, y’\leq \lfloor \frac{n}{k} \rfloor$。

  因此答案为$\sum_{i=1}^{L}\sum_{j=1}^{\lfloor\frac{n}{a_i}\rfloor}\phi(j)$,其中为$a_i$质数。求出欧拉函数后用前缀和累计答案即可。

  

CODE

CODE - Click Here

本站总访问量次 | 本站访客数人次

Powered by Hexo | Designed by iTimeTraveler | Refined by CSHwang