用线性筛来筛,复杂度O(n)

#include<bits/stdc++.h>
#include<ext/rope>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std;
using namespace __gnu_cxx; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f; bool isprime[N];
int prime[N],cnt,phi[N];
void getprime()
{
cnt=;
// memset(isprime,1,sizeof isprime);
// isprime[1]=1;
for(int i=;i<N;i++)
{
if(!isprime[i])
{
prime[++cnt]=i;
phi[i]=i-;
}
for(int j=;j<=cnt&&i*prime[j]<N;j++)
{
isprime[i*prime[j]]=;
if(i%prime[j]==)
{
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
}
int main()
{
getprime();
int a,b;
while(~scanf("%d%d",&a,&b))
{
ll ans=;
for(int i=a;i<=b;i++)
ans+=phi[i];
printf("%I64d\n",ans);
}
return ;
}
/******************* ********************/

类似于素数筛,利用欧拉函数是积性函数f(a*b)=f(a)*f(b)性质

素数i的欧拉函数值为i-1,如果是合数,那么利用最小的因子来筛它

最新文章

  1. UI拼图导出脚本,兼容cegui的ImageSet格式
  2. Intent官方教程(5)在manifest中给组件添加&lt;Intent-filter&gt;
  3. 包含到cocos2d-x里的tcpsocket源码
  4. JavaScript高级之闭包的概念及其应用
  5. Java线程小记
  6. JS中window.showModalDialog()详解(转)
  7. CentOS7 安装eclipse
  8. c# 如何找到项目中图片的相对路径
  9. 大数据---Ranger-1
  10. html css笔记zht
  11. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第六集之补充:文本编辑器vi/vim】
  12. Springboot入门之分布式事务管理
  13. 巧用这19条MySQL优化,效率至少提高3倍
  14. java随笔3 spring 的注入执行逻辑顺序
  15. 程序猿(媛)的葵花宝典-- 必备idea 插件plugins 提高编码效率
  16. CentOS6.5 安装Storm集群
  17. 用dlopen,dlsym加载动态链接库.so中函数
  18. Java JVM运行时数据区,内存管理和GC垃圾回收
  19. SPSS学习系列之SPSS Modeler Server是什么?
  20. 【转】Android中获取应用程序(包)的信息-----PackageManager的使用(一)

热门文章

  1. SpringSide4 maven
  2. LVS+Keepalived(DR模式)学习笔记
  3. erlang 最大公约数
  4. shell脚本注释方法
  5. cocos2d-x 3.0rc1 使用iconv库 解决UTF8乱码问题
  6. windy数(简单数位DP)
  7. ubuntu 安装wine
  8. Linux中假设系统丢失了ls命令
  9. 使用parted 对大容量盘进行分区
  10. Java mail 发送邮件 主题(标题)乱码