Gcd

Time Limit: 10 Sec  Memory Limit: 256 MB
[Submit][Status][Discuss]

Description

  给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的
  数对(x,y)有多少对.

Input

  一个整数N

Output

  如题

Sample Input

  4

Sample Output

  4

HINT

  1<=N<=10^7

Solution

  直接莫比乌斯反演即可。

  

  然后对于这个式子,我们下界分块一下即可。

Code

 #include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
typedef long long s64; const int ONE = 1e7+; int T;
int n,m;
bool isp[ONE];
int prime[],p_num;
int miu[ONE],sum_miu[ONE];
s64 Ans; int get()
{
int res=,Q=; char c;
while( (c=getchar())< || c>)
if(c=='-')Q=-;
if(Q) res=c-;
while((c=getchar())>= && c<=)
res=res*+c-;
return res*Q;
} void Getmiu(int MaxN)
{
miu[] = ;
for(int i=; i<=MaxN; i++)
{
if(!isp[i])
isp[i] = , prime[++p_num] = i, miu[i] = -;
for(int j=; j<=p_num, i*prime[j]<=MaxN; j++)
{
isp[i * prime[j]] = ;
if(i % prime[j] == )
{
miu[i * prime[j]] = ;
break;
}
miu[i * prime[j]] = -miu[i];
}
miu[i] += miu[i-];
}
} int main()
{
n=get();
Getmiu(n);
for(int d=; d<=p_num; d++)
{
if(prime[d] > n) break;
int N = n/prime[d];
for(int i=,j=; i<=N; i=j+)
{
j = min(N, N/(N/i));
Ans += (s64)(N/i) * (N/i) * (miu[j] - miu[i-]);
}
} printf("%lld",Ans);
}

最新文章

  1. 复化梯形求积分——用Python进行数值计算
  2. Windows Phone 十一、MVVM模式
  3. Struts2 Action中动态方法调用、通配符的使用
  4. poj 3522(最小生成树应用)
  5. 二十、mysql mysqldump备份工具
  6. hdu 1028
  7. Cocos2dx 小技巧(十一) 小人虽短,但能够旋转
  8. Super Hide IP 3.4.7.8允许您以匿名方式进行网上冲浪、 保持隐藏您的 IP 地址
  9. ExtJs Ext.panel.Panel和Ext.container.Viewport布局问题
  10. sql server存储过程分页
  11. IronJs 无相关源?
  12. [补档][NOI 2008]假面舞会
  13. BZOJ2726: [SDOI2012]任务安排
  14. Android WebKit 内核
  15. Loda Button
  16. Scrapy的使用
  17. APACHE - CXF 入门详解
  18. Django的rest_framework认证组件之全局设置源码解析
  19. 听说你还不会用Dagger2?Dagger2 For Android最佳实践教程
  20. 求FIRST集和FOLLOW集

热门文章

  1. 学习SQLite基本语句
  2. Messy Code in Windows Server 2008 R2 English Edition
  3. mysql 查询当月天数
  4. 菜鸟级appium 必看
  5. Navicat oracle to postgresql ERR
  6. cocos2d-x 键盘和鼠标事件
  7. Java 集合学习--集合概述
  8. wpf显示视频,image控件闪屏,使用winform控件实现
  9. B - 寻找M
  10. elmentUI组件怎么绑定原生事件