传送门
写在前面:比较简单的数论题目了
思路:对i来说,所有与i互质的数和i都乘同一个质数p,那么得到的两个数的gcd一定是p,所以我们就可以利用这个来搞一搞了,对1-n的phi预处理出来(欧拉筛),然后i从1-n枚举,j从1-prime[0](prmie[0]为质数个数)只要i*prime[j]不超过n就加到答案里就可以了
注意:当i=1时,phi只用加一次,但是其他情况就有相对的数对(x,y)与(y,x),所以phi要加2次
代码:

#include"bits/stdc++.h"
#define Maxn 10000000
using namespace std;
int n,phi[Maxn+1],prime[Maxn];
bool pd[Maxn+1];
long long ans;
main()
{scanf("%d",&n);phi[1]=1;for (int i=2;i<=n;i++){if (!pd[i])prime[++prime[0]]=i,phi[i]=i-1;for (int j=1;j<=prime[0];j++){if (prime[j]*i>n) break;pd[prime[j]*i]=1;if (i%prime[j]==0) {phi[i*prime[j]]=phi[i]*prime[j];break;}else phi[i*prime[j]]=phi[i]*phi[prime[j]];}}for (int i=1;i<=n;i++)for (int j=1;j<=prime[0];j++){if (prime[j]*i>n) break;ans+=phi[i];if (i!=1) ans+=phi[i];}printf("%lld",ans);
}

【BZOJ2818】Gcd,数论练习之欧拉筛相关推荐

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

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

  2. 欧拉筛(bzoj 2818: Gcd)

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

  3. 欧拉筛 筛法求素数 及其例题 时间复杂度O(n)

    埃式筛法尽管不错,但是确实做了许多无用功,某个数可能会被重复的筛好几次,欧拉筛解决了这个方法,下面为代码: 注意理解if(i%prim[j]==0) break; 大佬讲的不错的博客,我就不做复读机了 ...

  4. cf 1062d 思维 欧拉筛变形

    http://codeforces.com/contest/1062/problem/D 题意:给个n ,在n之内 所有(a,b) ,如果存在唯一的x 使a*|x| == b 或者 b* |x| == ...

  5. 线性筛素数(欧拉筛)

    欧拉筛是O(n)复杂度的筛素数算法,1秒内埃筛能处理1e6的数据,而1e7的数据就必须用欧拉筛了. 埃筛的基本思想是:素数的倍数一定是合数. 欧拉筛基本思想是:任何数与素数的乘积一定是合数 算法概述: ...

  6. 【数的专题】——欧拉筛

    上题:https://www.luogu.org/problemnew/show/P3383 当你总是觉得筛质数太慢的时候,不妨来试一下欧拉筛: 基本原理: 设一个整数x,保证它只被它的最小质因子筛去 ...

  7. 素数筛选法(埃氏筛 欧拉筛)

    质数筛选法 文章目录 质数筛选法 前言 一.埃氏筛 O(nloglogn)O(nloglogn)O(nloglogn) 二.欧拉筛O(n)O(n)O(n) 总结 前言 当需要大范围内的素数时,例如1e ...

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

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

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

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

最新文章

  1. 计算机导论简答芯片,吉大计算机 - 计算机导论简答题 (2011级)
  2. SetGet and MACRO
  3. Jyputer 项目工程设置Github同步,本地代码上传Github实例演示
  4. 字节跳动ClickHouse在用户增长分析场景的应用
  5. matplotlib-plot-绘制折线图
  6. Shell printf 命令
  7. 微信客户端<->腾讯微信服务器<->开发者服务器
  8. 如何集成Python代码和GUI来创建一个简单的游戏?
  9. [转载] Pytorch入门实战-----逻辑回归识别手写数据集
  10. android手机usb设置在哪里,手机usb调试在哪,教您安卓手机怎么打开USB调试
  11. 测试质量体系搭建--测试团队目标
  12. smoothstep(),平滑阶梯函数,平滑过渡函数
  13. 函数论_E.C.Tichmarsh_Page 4 级数一致收敛的魏尔斯特拉斯 M-判别法 的推广
  14. 吃土豆_nyoj_234(动态规划).java
  15. Halcon深度学习-目标检测-Rectangle1
  16. 有没有什么简单好用的录音软件?
  17. pytorch手写数字识别【源码实现-小清新版】
  18. 电子墨水屏标签:低功耗处理器技术
  19. java rgb转yuv_RGB,CMY(K),YUV,YIQ,YCbCr颜色的转换算法(java实现)
  20. 利用字典实现大侠个人信息查询程序

热门文章

  1. 单体应用微服务改造实践
  2. 火狐浏览器表单不跳转_坑爹火狐浏览器会记录表单数据,导致服务器控件点击事件出bug...
  3. 设计模式笔记二:抽象工厂模式
  4. Android笔记 意图传值demo
  5. ubuntu安装常用软件(比如python、搜狗拼音、cudnn等)
  6. chrome vue插件_不容错过的 Chrome 插件推荐合集-开发者必备篇
  7. thinkphp v5.0.11漏洞_thinkphp 5.0 代码执行漏洞
  8. 三次握手和四次挥手图解_详解 TCP 连接的“三次握手”与“四次挥手”
  9. php为什么查询语句加上order by就显示不出来,sql会查出结果 php页面偶尔显示空白 没有从sql得到结果...
  10. python温度转换代码_用python编写一个名为“convert_temp”的温度转换函数