标题效果:定整N(N <= 1e7),乞讨1<=x,y<=N和Gcd(x,y)素数的数(x,y)有多少.、

思考:推,。

建立gcd(x,y) = p,然后,x / p与y / p互素

问题就转化成了N / p中有多少个数互质,然后累加就能够了.

=>对于随意a,b,a <= N / p,b <= N / p,且a与b互质

=>gcd(a,b) == 1

如今问题就非常明显了。看到这个形式就非常easy想到欧拉函数。求一下phi,算一下前缀和,累加。

注意这里求欧拉一定要线性的,1qw的数据。nloglogn都非常悬。

CODE:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 10000010
using namespace std;bool not_prime[MAX];
int prime[MAX],primes;
long long phi[MAX],ans;int n;inline void Eratosthenes();int main()
{cin >> n;Eratosthenes();for(int i = 2;i <= n; ++i)phi[i] += phi[i - 1];for(int i = 1;i <= primes; ++i)ans += phi[n / prime[i]];cout << (ans << 1) - primes << endl;return 0;
}inline void Eratosthenes()
{phi[1] = 1;for(int i = 2;i <= n; ++i) {if(!not_prime[i])prime[++primes] = i,phi[i] = i - 1;for(int j = 1;j <= primes && prime[j] * i <= n; ++j) {not_prime[i * prime[j]] = true;if(i % prime[j] == 0) {phi[i * prime[j]] = phi[i] * prime[j];break;}else    phi[i * prime[j]] = phi[i] * (prime[j] - 1);}}
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

BZOJ 2818 Gcd 线性欧拉筛(Eratosthenes银幕)相关推荐

  1. Sum of Consecutive Prime Numbers POJ - 2739(线性欧拉筛+尺取法)

    题意: 一些正整数可以由一个或多个连续质数的总和表示.给定一个的正整数n,问满足条件的有多少种情况? 题目: Some positive integers can be represented by ...

  2. 欧拉筛(bzoj 2818: Gcd)

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 6707  Solved: 2952 [Submit][Status][Discu ...

  3. Enlarge GCD CodeForces - 1034A(欧拉筛+最大公约数)

    题意: 给出n个数,删去其中一些使得总的gcd(最大公约数)最大 题目: Mr. F has n positive integers, a1,a2,-,an. He thinks the greate ...

  4. 【BZOJ2818】Gcd,数论练习之欧拉筛

    传送门 写在前面:比较简单的数论题目了 思路:对i来说,所有与i互质的数和i都乘同一个质数p,那么得到的两个数的gcd一定是p,所以我们就可以利用这个来搞一搞了,对1-n的phi预处理出来(欧拉筛), ...

  5. 埃氏筛 线性筛(欧拉筛) 算法解析

    埃氏晒 埃拉托斯特尼筛法,简称埃氏晒,是一种用来求自然数n以内的全部素数. 他的基本原理是,如果我们要获得小于n的所有素数,那就把不大于根号n的所有素数的倍数剔除. 埃氏晒的原理很容易理解,一个合数, ...

  6. 素数的线性筛法java,埃氏筛 线性筛(欧拉筛) 算法解析

    埃氏晒 埃拉托斯特尼筛法,简称埃氏晒,是一种用来求自然数n以内的全部素数. 他的基本原理是,如果我们要获得小于n的所有素数,那就把不大于根号n的所有素数的倍数剔除. 埃氏晒的原理很容易理解,一个合数, ...

  7. 埃氏筛与欧拉筛(线性筛)

    目录 一.前言 二.埃氏筛与欧拉筛(线性筛) 1.问题描述 2.基本思路 (1)埃氏筛法 (2)欧拉筛法 三.题例 1.上链接 2.简单思路 3.代码 (1)埃氏筛python版 (2)欧拉筛pyth ...

  8. 筛选质数,埃氏筛和欧拉筛(线性筛)

    求len之内的所有的素数 除了比较常用的开根号的求法,还有两种更好的方法,埃氏筛和线性筛.其中埃氏筛更好理解,而线性筛(欧拉筛)不好理解但是更快. 埃氏筛 #include <bits/stdc ...

  9. 线性筛(欧拉筛)——算法解析

    算法简介: 欧拉筛是一个能够做到O(n)O(n)O(n)的时间复杂度,也就是线性的质数筛法,是目前性能最优秀的质数筛法.在很多算法和数据结构题目中都有大量的应用,是一个十分基础的工具.对于一个频繁使用 ...

最新文章

  1. WEB应用之网页数据分析工具
  2. PHP中常见的提示对照表
  3. MongoDB:使用Spring数据添加计数器
  4. 云计算之路-阿里云上:用上了开放缓存服务OCS
  5. 时隔5年 三星要重回苹果闪存零部件供应商名单了
  6. 【疾病分类】基于matlab LBP果实病害检测分类【含Matlab源码 1714期】
  7. 中星9号新增测试频道_直播卫星新增中央卫视18套高清电视节目频道测试
  8. npm publish发布包时出现403错误no_perms Private mode enable, only admin can publish this module:
  9. 番茄助手Visual Assistx报错The security key for this program currently。。
  10. 泛微E-Office v9任意文件上传(CNVD-2021-49104)复现
  11. RGB色彩模式-最广的颜色系统之一
  12. Grafana Tempo简介
  13. DAOS 源码解析之 daos_pool
  14. 计算机领域,客观事物的属性,客观事物
  15. oracle创建用户,授权connect,resource后无法建表
  16. 知乎android客户端drawer布局探究
  17. 3D游戏的碰撞检测是如何实现的?
  18. 上海亚商投顾:沪指震荡反弹 游戏、传媒概念股再度大涨
  19. 公立计算机大学排名,全国公办软件工程大学排名
  20. python实现画小猪佩奇

热门文章

  1. linux创建redis容器,docker-compose实现redis部署及键值添加
  2. 敲的php代码怎么预览,php代码实现文件的预览
  3. linux查找项目中的问题,教你如何快速定位项目中慢查询[项目管理]
  4. 【硬件基础】个人感悟+C语言 引入头文件时引号括号的区别
  5. NLP学习 资料总结
  6. oracle library cache lock,【案例】Oracle等待事件library cache lock产生原因和解决办法...
  7. php变量 标签,html标签如何使用php中的变量
  8. root 123 mysql_MySQL常用命令
  9. CSS动画效果无限循环放大缩小
  10. H5画布不显示图片的问题解决