博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 2818GCD
阅读量:6913 次
发布时间:2019-06-27

本文共 511 字,大约阅读时间需要 1 分钟。

Description

给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的

数对(x,y)有多少对.

 

Input

一个整数N

Output

如题

Sample Input

4

Sample Output

4

HINT

 

hint

对于样例(2,2),(2,4),(3,3),(4,2)

1<=N<=10^7

题解

gcd(a,b)=p 则 gcd(a/p,b/p)=1;

设 a<=b 则gcd(a,b)=phi[b](与b互质的个数)

所以只需要枚举每一个素数,每一个数(这里可以用n的前缀和来维护,记为f[n])求解出ans=Σf[n/prime[i]]*2-1(考虑a>b,并减去(1,1)之类的值)

1 #include
2 const int maxn=10000010; 3 bool pd[maxn]; 4 long long phi[maxn],prime[maxn],top,n,ans; 5 void ES(){ 6 for(int i=2;i

 

转载于:https://www.cnblogs.com/wuminyan/p/5116145.html

你可能感兴趣的文章
Javascript写入txt和读取txt文件示例
查看>>
Xamarin XAML语言教程使用使用Progress属性设置当前进度
查看>>
信息批量提取工具bulk-extractor
查看>>
Linux 修改网卡名eth0
查看>>
jsp中的绝对路径
查看>>
婚礼上播放的歌曲
查看>>
数据库备份文件上传到ftp服务器脚本
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
moosefs安装记录
查看>>
Start Developing iOS Apps Today系列(五)
查看>>
×××: 关于开展国家下一代互联网示范城市 建设工作的通知
查看>>
Puppet模块(一):NTP模块及Cron资源
查看>>
ios 开发
查看>>
open与fopen
查看>>
云存储安全的最佳实践
查看>>
大型web网站(资料)
查看>>
Java方法trim()所不能删除的字符串两端的全角空格删除方法
查看>>
如何查看本机所开端口
查看>>