牛客网暑期ACM多校训练营(第三场) 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.

1 ≤ N ≤ 107

输出描述:

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
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<string>
#define LL long long
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define lson o<<1
#define rson o<<1|1
using namespace std;
const int maxn = 1e7 + 10;
bool is_prime[maxn];
int prime[maxn];
int ct = 0, n;
LL ans = 0;
void P(int n)
{
	memset(is_prime, false, sizeof(is_prime));
	ct = 0;
	ans = 0;
	for(int i = 2;  i <= n; i++)
	{
		if(!is_prime[i])
			prime[ct++] = i;
		for(int j = 0; j < ct; j++)
		{
			if(i * prime[j] > maxn)
				break;
			is_prime[i * prime[j]] = 1;
			if(i % prime[j] == 0)
				break;
		}
		if(!is_prime[i])
			ans += (ct - 1) * (n / i); //key code
	}
}
int main()
{
		cin >> n;
		P(n);
		//55printf("%d\n", ct);
		ans *= 2;
		printf("%I64d\n", ans);	
    return 0;
}

猜你喜欢

转载自blog.csdn.net/gtuif/article/details/81675525