题目描述
给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对.
输入输出格式
输入格式:
一个整数N
输出格式:
答案
输入输出样例
输入样例#1:
4
输出样例#1:
4
说明
对于样例(2,2),(2,4),(3,3),(4,2)
1<=N<=10^7

#include<cstdio>
typedef long long ll;
const int N=1e7+10;
int n,p,prime[N/10],phi[N];
bool iscomp[N];
ll sum[N],ans;
void eular()
{
phi[1]=1;
for(int i=2;i<=n;i++)
{
if(!iscomp[i])prime[p++]=i,phi[i]=i-1;
for(int j=0;j<p&&i*prime[j]<=n;j++)
{
iscomp[i*prime[j]]=1;
phi[i*prime[j]]=phi[i]*(i%prime[j]?prime[j]-1:prime[j]);
}
}

博客详细解析了如何利用欧拉函数和前缀和解决洛谷P2568(bzoj2818)问题,即找出所有1<=x,y<=N且Gcd(x,y)为素数的数对(x,y),并给出了输入输出格式和样例,探讨了数论中的公式推导和定理应用。"
88871737,8191294,手把手教你搭建Hadoop单节点环境,"['Hadoop', 'Linux', '虚拟机配置', 'JDK安装', 'Hadoop部署']
最低0.47元/天 解锁文章
2116

被折叠的 条评论
为什么被折叠?



