[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\frac{n}{prime[i]}\rfloor]\)里的每个数的欧拉函数的前缀和,因为\((x_1,y_1)\)可以交换,就乘上2,重复计算了\((1,1)\),还要减去1
#include <bits/stdc++.h>
using namespace std;#define read2(a, b) (read(a), read(b))
#define read3(a, b, c) (read(a), read(b), read(c))const int inf = 0x3f3f3f3f-1;
const int MAXN = 1e7+7;template<class T> void read(T & x) {register int c = getchar(), f = 1;x = 0;while(!isdigit(c)) {if (c == '-') f = -f;c = getchar();}while(isdigit(c)) x = x * 10 + c - '0', c = getchar();x *= f;
}int prime[MAXN], n, tot, phi[MAXN], m;
long long ans, pre[MAXN];
bool notprime[MAXN];void calcphi() {phi[1] = 1;for(int i = 2; i <= n; ++i) {if (!notprime[i]) prime[++tot] = i, phi[i] = i - 1;for(int j = 1; j <= tot; ++j) {if (i * prime[j] > n) break;notprime[i * prime[j]] = 1;if (i % prime[j] == 0) {phi[i * prime[j]] = phi[i] * prime[j];break;}else phi[i * prime[j]] = phi[i] * phi[prime[j]];}}
}int main(void) {cin >> n;calcphi();for(int i = 1; i <= n; ++i) pre[i] = pre[i-1] + phi[i];for(int i = 1; i <= tot; ++i) ans += pre[n / prime[i]] * 2 - 1;cout << ans;return 0;
}
转载于:https://www.cnblogs.com/storz/p/10191494.html
[BZOJ2818][P2568]Gcd[欧拉函数]相关推荐
- jzoj3509-倒霉的小C【gcd,欧拉函数】
正题 大意 画n条线,每次坐标变换为(x+n,y+(−1)(i+1)∗i)(i=1∼n)(x+n,y+(-1)^{(i+1)}*i) \ \ \ (i=1\sim n)(x+n,y+(−1)(i+1) ...
- HDU 2588 GCD(欧拉函数)
GCD 思路 题目要求,对于给定的n,mn, mn,m要求有多少数∑i=1ngcd(i,n)>=m\sum _{i = 1} ^{n} gcd(i, n) >= m∑i=1ngcd(i, ...
- 中gcd函数_欧拉函数φ(n)的计算及欧拉定理
1 欧拉函数定义 在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient fun ...
- hdu (欧拉函数+容斥原理) GCD
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1695 看了别人的方法才会做 参考博客http://blog.csdn.net/shiren_Bod/ar ...
- hdu 4983 Goffi and GCD(欧拉函数)
Problem Description Goffi is doing his math homework and he finds an equality on his text book: gcd( ...
- GCD - Extreme(欧拉函数变形)
题目链接:https://vjudge.net/problem/UVA-11426 题目大意: 给出整数n∈[2,4000000],求解∑gcd(i,j),其中(i,j)满足1≤i<j≤n. 的 ...
- UVA11424 GCD - Extreme (I)【欧拉函数打表】
Given the value of N, you will have to find the value of G. The definition of G is given below: G=∑i ...
- UVA11426 GCD - Extreme (II)【欧拉函数】
Given the value of N, you will have to find the value of G. The definition of G is given below: G=∑i ...
- UVA 11426 GCD - Extreme (II) (欧拉函数)
题目传送门:点击打开链接 假设a.b(a<b)互质,那么gcd(a,b)=1,这样当i循环到a.j循环到b时就会向结果中+1,而i循环到2*a.j循环到2*b时就会向结果中+2(gcd(2*a, ...
最新文章
- ML基石_10_LogisticRegression
- 实战测试SO_REUSEADDR选项
- 正则表达式真的很骚,可惜你不会写!
- Apache+jboss群集部署
- 如何在Linux上使用端口敲门(以及为什么不应该这样做)
- vue 打包路由报错_Vue下路由History模式打包后页面空白的解决方法
- LeetCode 520. 检测大写字母
- win10电脑开机密码忘了怎么办_电脑开机密码忘了怎么办最简单的方法_windows7教程...
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?...
- [机器学习]机器学习常用的模型评估方法
- 2022年C语言程序设计题库习集带答案(史上最全版)
- python人脸识别代码实现
- 电脑同时上内外网——设置教程(附内外网优先级设置)
- ROS与PCL:在setconditionfunciton时,无法使用std::bind
- 思科模拟器的远程连接交换机的实现
- 统计学的Python实现-019:任意正态分布计算概率
- excel条形图-蝴蝶图的画法
- 广东专升本C语言程序设计(完结)
- node 安装(新)
- 并行传输数据和串行传输数据_为什么串行数据传输比并行数据传输快?
热门文章
- MYSQL数据库与Emoji表情的故事
- 编写带对话框界面的OCX
- 博客专题计划:《在实践中深入理解常见网络协议》
- PHPSession-完全PHP5之session篇
- CentOS安装mysql*.rpm提示conflicts with file from package的解决的方法
- PDF 补丁丁 0.4.1.688 测试版发布(请务必用其替换 682 测试版)
- js获取字符串的字节数
- 问题解决 xenapp6/6.5发布资源管理器explorer应用不能打开 一闪而过
- 遇到:ORA-27121: UNABLE TO DETERMINE SIZE OF SHAR...
- Soft Skill