2818: Gcd

Time Limit: 10 Sec  Memory Limit: 256 MB

Description

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

Input

一个整数N

Output

如题

Sample Input

4

Sample Output

4

HINT

hint

对于样例(2,2),(2,4),(3,3),(4,2)

1<=N<=10^7

题解:gcd(x, y) = p   <==> gcd(x/p, y/p) = 1   <==> phi[y/p] if(x/p is smaller)   p is a prime

我们就枚举p好了, x中有x/p个满足为p 的倍数,我们就需要Σ(i < x/p) phi[i] 的前缀和,然后答案*2 -1(*2是交换x和y, -1是因为phi[1]是x == y, 我们这里phi[1] = 1)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int M = 1e7 + 10;
bool vis[M];
int cnt;
int p, phi[M], prime[M];
ll sum[M];
void init(int t){phi[1] = 1;for(int i = 2; i <= t; i++){if(!vis[i]) phi[i] = i-1, prime[++cnt] = i;for(int j = 1; j <= cnt && i * prime[j] <= t; j++){int m = i * prime[j]; vis[m] = 1;if(i % prime[j] == 0) {phi[m] = phi[i] * prime[j];break;}phi[m] = phi[i] * (prime[j] - 1);}}for(int i = 1; i <= t; i++) sum[i] = sum[i-1] + phi[i]*1LL;
}int main(){int t;ll ans = 0;scanf("%d", &t);init(t);for(int i = 1; i <= cnt; i++)ans += 2*sum[t/prime[i]] - 1;//, cout<<sum[t/prime[i]]<<endl;printf("%lld", ans);
}

View Code

转载于:https://www.cnblogs.com/EdSheeran/p/9329517.html

bzoj2818: Gcd相关推荐

  1. BZOJ2818 Gcd

    标签:数学,数论,欧拉函数,线性筛 Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 ...

  2. bzoj-2818 Gcd

    2818: Gcd 题目链接 时间限制: 10 Sec 内存限制: 256 MB 提交: 7355 解决: 3268 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 ...

  3. bzoj2818: Gcd 莫比乌斯繁衍

    题意: 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. n<=1e7 题解:两种做法,第一直接推式子.得f[n] = Σd(d是质数)Σd2 ( ...

  4. 莫比乌斯反演入门题目(详细)

    目录 luoguP2568 GCD hdu1695 GCD luogu3455[POI2007]ZAP-Queries luogu2522 [HAOI2011]Problem b P4318 完全平方 ...

  5. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  6. GCD BZOJ2818 [省队互测] 数学

    题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入样例#1: 复制 4 ...

  7. [BZOJ2818][P2568]Gcd[欧拉函数]

    \(gcd(x,y)=p | p∈P\) \(gcd(x_1\times p,y_1\times p) = p\) \(gcd(x_1,y_1)=1\) 每个素数的贡献是对于\([1,\lfloor\ ...

  8. 【BZOJ2818】Gcd,数论练习之欧拉筛

    传送门 写在前面:比较简单的数论题目了 思路:对i来说,所有与i互质的数和i都乘同一个质数p,那么得到的两个数的gcd一定是p,所以我们就可以利用这个来搞一搞了,对1-n的phi预处理出来(欧拉筛), ...

  9. 【bzoj2818】Gcd

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 4344  Solved: 1912 [Submit][Status][Discu ...

最新文章

  1. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
  2. sklearn与pytorch模型的保存与读取
  3. ajax传递参数与controller接收参数映射关系
  4. tf.lookup.StaticHashTable 用法
  5. python调用c++_python高性能编程之Cython篇 第一章
  6. Java应用结构规范
  7. 6-C/C++实现数据结构链表相关操作
  8. 电销机器人源码支持私有云和本地部署
  9. 高数复习(1)--曲线切向与曲面法向的理解
  10. 【C代码】结构体数组初始化的相关总结
  11. k8s-v1.2.3部署mysql-8服务
  12. 文本数据挖掘一般步骤
  13. 杭电1048 The Hardest Problem Ever
  14. Hadoop培训视频教程
  15. 软考网络规划设计师知识点总结--第一章(计算机网络概论)
  16. 动手学习深度学习——Pytorch版教程系列汇总(长期更新版)
  17. 个人总结--关于学习过程中的一些经验心得分享
  18. 函数的参数作为引用时
  19. swapidc如何销售服务器,swapidc对接云服务器
  20. sqlmap 常用命令

热门文章

  1. 艺术美的价值是什么?
  2. 比特币总量是2100万吗?为什么?
  3. 于谦一共收了几个徒弟,为什么?
  4. 白岩松曾说过这样一段话
  5. 寻找创业方向的3个方法
  6. 躺着收钱月入过万,怎样才能做到?
  7. 路由器经常掉线,必须重新插拔网线才能上网,什么原因?
  8. 华为手机的硬件好,苹果手机的系统好,能不能将苹果手机的系统装到华为手机里面呢?
  9. go 输入输出流(io)
  10. Qt4_与主线程通信