正题

P2568


题目大意

求满足1≤x,y≤n1\leq x,y\leq n1≤x,y≤n且gcd(x,y)=primegcd(x,y)=primegcd(x,y)=prime的数对(x,y)(x,y)(x,y)的个数


解题思路

题目即求

∑i=1n∑j=1n[gcd(i,j)=prime]\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=prime]i=1∑n​j=1∑n​[gcd(i,j)=prime]

可以考虑先枚举该prime,那么有

∑p∈primen∑i=1n/p∑j=1n/p[gcd(i,j)=1]∑p∈primen∑i=1n/p∑j=1n/p∑d∣i,d∣jμ(d)∑p∈primen∑d=1n/pμ(d)×⌊nd⌋×⌊nd⌋\sum_{p\in prime}^n\sum_{i=1}^{n/p}\sum_{j=1}^{n/p}[gcd(i,j)=1]\\ \sum_{p\in prime}^n\sum_{i=1}^{n/p}\sum_{j=1}^{n/p}\sum_{d|i,d|j}\mu(d)\\ \sum_{p\in prime}^n\sum_{d=1}^{n/p}\mu(d)\times \left\lfloor\frac{n}{d}\right\rfloor\times \left\lfloor\frac{n}{d}\right\rfloor p∈prime∑n​i=1∑n/p​j=1∑n/p​[gcd(i,j)=1]p∈prime∑n​i=1∑n/p​j=1∑n/p​d∣i,d∣j∑​μ(d)p∈prime∑n​d=1∑n/p​μ(d)×⌊dn​⌋×⌊dn​⌋

时间复杂度不太会证,看dalao证的是 O(n/logn)O(n/log n)O(n/logn)的


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 10000010
using namespace std;
ll n,ans,w,p[N],mu[N],prime[N];
void work()
{p[1]=mu[1]=1;for(ll i=2;i<=10000000;++i){if(!p[i]){prime[++w]=i;mu[i]=-1;}for(ll j=1;j<=w&&i*prime[j]<=10000000;++j){p[i*prime[j]]=1;if(i%prime[j]==0){mu[i*prime[j]]=0;break;}else mu[i*prime[j]]=-mu[i];}}for(ll i=2;i<=10000000;++i)mu[i]+=mu[i-1];return;
}
ll get(ll n)
{ll sum=0;for(ll l=1,r=0;l<=n;l=r+1){r=n/(n/l);sum+=(mu[r]-mu[l-1])*(n/l)*(n/l);}return sum;
}
int main()
{scanf("%lld",&n);work();for(ll i=1;i<=w;++i)if(prime[i]<=n)ans+=get(n/prime[i]);else break;printf("%lld",ans);return 0;
}

【数论】GCD(P2568)相关推荐

  1. [数论]Gcd/ExGcd欧几里得学习笔记

    \(Q\):什么是\(GCD\)? \(GCD\) \(GCD\),即最大公约数(\(Greatest\ Common\ Divisor\)) 对于两个自然数\(a,b\),定义\(GCD(a,b)\ ...

  2. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

  3. 数论----gcd和lcm

    gcd即最大公约数,lcm即最小公倍数. 首先给出a×b=gcd×lcm 证明:令gcd(a,b)=k,a=xk,b=yk,则a×b=x*y*k*k,而lcm=x*y*k,所以a*b=gcd*lcm. ...

  4. Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))

    传送门 •题意 给出两个正整数 a,b: 求解 k ,使得 LCM(a+k,b+k) 最小,如果有多个 k 使得 LCM() 最小,输出最小的k: •思路 时隔很久,又重新做这个题 温故果然可以知新❤ ...

  5. HDU - 4497 GCD and LCM 数论gcd

    传送门 文章目录 题意: 思路: 题意: 给三个数的lcmlcmlcm和gcdgcdgcd,求满足条件的三元组组合个数. 思路: 首先lcmmodgcd==0lcm\bmod gcd==0lcmmod ...

  6. Educational Codeforces Round 106 (Rated for Div. 2) D. The Number of Pairs 数论gcd

    传送门 文章目录 题意: 思路: 题意: 给三个数c,d,xc,d,xc,d,x,求满足c∗lcm(a,b)−d∗gcd(a,b)=xc*lcm(a,b)-d*gcd(a,b)=xc∗lcm(a,b) ...

  7. nssl1335-蛋糕切割【数论,GCD】

    正题 题目大意 n∗mn*mn∗m的矩阵,求对角线经过多少个格子(经过格子内部才算). 解题思路 FromZYCdalaoFrom\ ZYCdalaoFrom ZYCdalao的思路:::对于若(n, ...

  8. P1072-Hankson的趣味题【数论,gcd】

    正题 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1072 题目大意 a1=gcd(a0,x)a1=gcd(a0,x) ...

  9. 【数论gcd】P6476 [NOI Online #2 提高组]涂色游戏(luogu)

    思路: gcd缩范围然后模拟p1红p2蓝设p1<p2否则换过来,然后从1开始,过k−1个倍数之后他是否还在范围内,如果在范围内,就有k个蓝色相连,然后按照题目输出 CodeCodeCode: # ...

  10. D. Not Adding (数论 gcd 筛法)

    题解:这题我们最终是看有多少个gcd可以被加在数组后面,因为gcd只会变小不会变大,所以我们最多将1~A中的所有数都加进来(A是整个数组元素的最大值).所以我们可以考虑对于暴力1到A的每一个数,看这个 ...

最新文章

  1. 拼音开头有什么字_excel查找函数应用:如何提取姓名的拼音首字母
  2. Initializing Spring root WebApplicationContext
  3. 【设计模式】开闭原则
  4. Maven本地库添加Oracle JDBC驱动
  5. java中console_Java:如何从System.Console()获取输入
  6. 斯坦福机器学习课程 Exercise 习题三
  7. linux 扩展挂载盘大小_Linux 挂载新添加磁盘LVM配置
  8. Struts1和Struts2的特点、工作流程及差异性
  9. 常用编程语言的介绍及特点
  10. DM6437 OSD调试记录
  11. js生成execl表格
  12. RDS数据库空间满了怎么办?
  13. python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)
  14. Error creating bean with name 'redisTemplate' defined in URL
  15. 【IOS】IOS开发问题解决方法索引(三)
  16. 斯坦福机器人学导论(视频+英文PPT讲义+课程作业+英文书籍)
  17. 逻辑和编程语言(PTIME 的逻辑/命题和谓词逻辑)
  18. LiDAR360使用说明书
  19. 中型公司网络架构拓扑与详解
  20. php diy明信片代码,用ps制作一张简单的明信片

热门文章

  1. mysql视图实现的_mysql视图是什么?怎么实现?
  2. html点击图片弹出大图特效代码,Jquery 点击图片在弹出层显示大图
  3. mysql 基础视图_MySQL基础(4) | 视图
  4. leetcode206:反转链表
  5. 利用vector实现一对一(pair<int,int>)
  6. Java 文件的拷贝
  7. 创新视角下的复盘 | 2021/08/01-2021/09/30
  8. 你知道304吗?图解强缓存和协商缓存
  9. [Nginx]负载均衡和动静分离
  10. [SpringSecurity]web权限方案_用户授权_注解使用