lightoj 1007 - Mathematically Hard 欧拉函数
2016-05-10 17:33
423 查看
求a,b之间的欧拉函数的平方和。
直接筛选法求出欧拉函数,然后来个前缀和。
注意会爆ll,开成ull
直接筛选法求出欧拉函数,然后来个前缀和。
注意会爆ll,开成ull
#include<bits/stdc++.h> using namespace std; #define N 5010000 #define ll long long #define ull unsigned long long int phi[N+20]; ll ans[N+20]; void euler() { for(int i=1;i<=N;i++) phi[i]=i; phi[1]=1; for(int i=2;i<=N;i++) { if(phi[i]==i) { phi[i]=i-1; for(int j=i+i;j<=N;j+=i) { phi[j]=phi[j]/i*(i-1); } } } ans[0]=0; for(int i=1;i<=N;i++) { ans[i]=ans[i-1]+(ll)phi[i]*phi[i]; } } int main() { euler(); int t; scanf("%d",&t); for(int cas=1;cas<=t;cas++) { int a,b; scanf("%d %d",&a,&b); printf("Case %d: %llu\n",cas,ans[b]-ans[a-1]); } return 0; }
相关文章推荐
- CentOS7(64)环境下Hadoop2.6.0分布式部署说明
- angularjs学习总结一(表达式、指令、模型)
- 电脑配置
- 梦断代码阅读笔记(3)
- HBASE二级索引
- 利用无权图的单源最短路算法实现地铁换乘图
- PHP+Mysql 实现留言板
- RxJS入门(9)----调度(Bending Time with Schedulers)
- Android ImageView手势缩放完整的实现
- 软件结构图
- iOS NSObject 的 isa 属性的类型 Class
- javaScript 常用方法
- webRTC的用户体验
- apache中禁止一般用户访问后台特定目录
- 基本功
- Python再接触第二次
- C++ 字典遍历
- Android开发笔记(九十八)往图片添加部件
- android: 服务的基本用法
- 【Linux远程管理】SSH协议远程管理