H Diff-prime Pairs
2018-07-27 06:10:31来源:博客园 阅读 ()
牛客网暑期ACM多校训练营(第三场) H Diff-prime Pairs
题目:
链接:https://www.nowcoder.com/acm/contest/141/H
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
Eddy has solved lots of problem involving calculating the number of coprime pairs within some range. This problem can be solved with inclusion-exclusion method. Eddy has implemented it lots of times. Someday, when he encounters another coprime pairs problem, he comes up with diff-prime pairs problem. diff-prime pairs problem is that given N, you need to find the number of pairs (i, j), where and are both prime and i ,j ≤ N. gcd(i, j) is the greatest common divisor of i and j. Prime is an integer greater than 1 and has only 2 positive divisors.
Eddy tried to solve it with inclusion-exclusion method but failed. Please help Eddy to solve this problem.
Note that pair (i1, j1) and pair (i2, j2) are considered different if i1 ≠ i2 or j1 ≠ j2.输入描述:
Input has only one line containing a positive integer N.7
1 ≤ N ≤ 10输出描述:
Output one line containing a non-negative integer indicating the number of diff-prime pairs (i,j) where i, j ≤ N示例1输入
复制3输出
复制2示例2输入
复制5输出
复制6
思路:
遍历每个g,找到两个不同的素数p1,p2,如果g*p1<=n 并且 g*p2<=n,那么(g*p1,g*p2)就是一个符合要求的素数对,
那问题就转化成找 n/g 以内的素数的数量,可以通过线性筛出素数再处理前缀和得出。对于每个g,小于g的素数数量为cnt=pre[n/i],则符合要求的素数对数量为C(cnt,2),因为可以交换顺序,所以是C(cnt,2)*2;
代码:
#include<cstdio> using namespace std; const int maxn = 11000000; bool vis[maxn]; int prime[maxn]; int pre[maxn]; int main() { ///先线性筛出素数 int top=0,maxn=1e7+2; long long i,j; for( i=2; i<=maxn; i++) { if(!vis[i])prime[top++]=i; for(int j=0; prime[j]*i<maxn; j++) { vis[ prime[j]*i ]=1; if(i%prime[j]==0)break; } } ///预处理前缀和,找出小于等于i的质数的个数 vis[1]=1; for(int i=1; i<=maxn; i++) { pre[i]=pre[i-1]+!vis[i]; } int n; scanf("%d",&n); long long ans=0; for(int i=1; i<=n; i++) { long long cnt = pre[n/i]; if(cnt>=2) ans+=(cnt-1)*cnt; /// C(N,2)*2 } printf("%lld\n",ans); return 0; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 牛客网中矩阵中的路径 2019-10-25
- 牛客国庆集训day6 B Board (模拟标记思维或找规律或分块? 2018-10-08
- 牛客国庆集训day5 G 贵族用户 (模拟) 2018-10-06
- 牛客NOIP提高组R1 C保护(主席树) 2018-09-18
- 牛客NOIP普及组R1 C括号(dp) 2018-09-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash