BZOJ 2818
来源:互联网 发布:网络电话卡是什么 编辑:程序博客网 时间:2024/06/01 08:13
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;typedef long long ll;const ll Maxn = 10000900;ll prime[Maxn], phi[Maxn], tot;bool check[Maxn];ll n, ans;void Q_Prime(){phi[1] = 1;for(ll i = 2; i <= n; i++){if(!check[i]) prime[++tot] = i, phi[i] = i-1;for(ll j = 1; j <= tot; j++){if(i * prime[j] > n) break;check[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] * (prime[j] - 1);}}}int main(){//计算出n以内的素数和互质数//因为gcd(x, y)=p(素数), 所以 gcd(x/p, y/p) == 1//所以,x/p和y/p互质,转而成为求max(x/p, y/p)以内的互质数//然而这样写T掉了,考虑前缀和处理,访问n/prime[j]之前所有的有效值ACscanf("%lld",&n);Q_Prime();// prllf("tot=%d\n",tot);for(ll i = 1; i <= n; i++) phi[i] += phi[i-1];for(ll i = 1; i <= tot; i++)ans += phi[n / prime[i]];printf("%lld",ans * 2 - tot);return 0;}
阅读全文
0 0
- BZOJ 2818
- BZOJ 2818 gcd
- BZOJ 2818 Gcd
- BZOJ 2818 [SDOI2008] 仪仗队
- 【BZOJ 2818】 gcd
- bzoj 2818: Gcd
- BZOJ 2818: Gcd
- BZOJ 2818: Gcd
- 【BZOJ 2818】Gcd
- bzoj 2818: Gcd
- Gcd [Bzoj 2818]
- 【BZOJ 2818】Gcd
- 【BZOJ】2818 Gcd
- BZOJ 2818 Gcd
- bzoj 2818: Gcd
- BZOJ 2818 Gcd
- bzoj 2818 Gcd
- [bzoj 2818]Gcd
- 缓存架构设计细节二三事
- 猜拳游戏(基于python面向对象1)
- NYOJ-837-Wythoff Game 【威佐夫博奕】
- Maven使用Tomcat热启动问题:java.lang.LinkageError: loader constraint violation
- amap高德地图利用uri api实现商家名片、去这里的功能
- BZOJ 2818
- 【C++标准模板库笔记2】智能指针shared_ptr的简单使用
- 安信可A7模块---GPRS之AT命令测试
- hahMap 的数据结构 、遍历以及排序
- Win7下的焦点自动失去
- 关于灯板上LED灯总是坏的问题
- POJ 3009 Curling 2.0
- 每天一个linux命令(10):cat 命令
- protobuf【2】Varints方法编码