Gcd [Bzoj 2818]
2016-06-04 16:35
211 查看
题目地址——
Gcd
【题目描述】
给定整数 N,求 1<=x,y<=N 且 Gcd(x,y) 为素数的数对 (x,y) 有多少对.【输入描述】
一个整数 N【输出描述】
如题。【样例输入】
4【样例输出】
4【Solution】
ans=∑j=1the number of prime{∑i=1⌊nprimej⌋φ(i)}⋅2−1【Code】
#include <iostream> #include <cstdio> #include <cmath> #define LL long long using namespace std; LL n,ans; bool no_prime[10000010]; int prime[10000010]; int phi[10000010]; LL sum[10000010]; int main(){ scanf("%lld",&n); phi[1]=1; no_prime[1]=true; phi[0]=0; for(LL i=2;i<=n;i++){ if(!no_prime[i]){ prime[++prime[0]]=i; phi[i]=i-1; } for(LL j=1;prime[j]*i<=n;j++){ no_prime[i*prime[j]]=true; if(i%prime[j]==0){ phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } for(LL i=1;i<=n;i++)sum[i]=sum[i-1]+phi[i]; for(LL i=1;i<=prime[0];i++)ans+=sum[n/prime[i]]*2-1; printf("%lld\n",ans); return 0; }
相关文章推荐
- 注册的时候 输入框类用户名 密码 邮箱的判定
- Android系列之多线程用法与Service初步
- Minimum Depth of Binary Tree
- [JZOJ junior 2042] SuperPow
- 正则表达式 找邮箱
- 安卓HTTP实例中post方法和get方法的区别
- 判断一棵二叉树是不是另一棵二叉树的子树
- 上台阶-动态规划
- 正则表达式 找手机号
- 【SPFA】遭遇战 VijosP1404
- CentOS 6.5断电后启动出现:unexpected inconsistency run fsck manully
- 网站数据分析基础
- 遍历某一指定目录下的文件和目录
- 模板类与类模板、函数模板与模板函数等的区别
- 2016 系统设计第一期 (档案一)MVC bootstrap model弹出子页面
- Oracle数据库安装完成后,点击sqlplus.exe或者客户端PLSQL Developer,总是显示无法登录解决方法
- Ext Combo 加载选项
- 关于MPI语义的简单测试
- 数据结构实验之链表三:链表的逆置
- 学习进度