HDOJ The Euler function 2824【欧拉函数】
2015-07-31 17:29
218 查看
The Euler functionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4389 Accepted Submission(s): 1821 Problem Description The Euler function phi is an important kind of function in number theory, (n) represents the amount of the numbers which are smaller than n and coprime to n, and this function has a lot of beautiful characteristics. Here comes a very easy question: suppose you are given a, b, try to calculate (a)+ (a+1)+....+ (b) Input There are several test cases. Each line has two integers a, b (2<a<b<3000000). Output Output the result of (a)+ (a+1)+....+ (b) Sample Input 3 100 Sample Output 3042 Source 2009 Multi-University Training Contest 1 - Host by TJU Recommend gaojie | We have carefully selected several similar problems for you: 2818 2825 2822 2821 2820 |
注意数组开成long long 型
第一种:稍微快一点
#include <stdio.h> #include <math.h> #include <vector> #include <queue> #include <string> #include <string.h> #include <stdlib.h> #include <iostream> #include <algorithm> #define maxn 3000000+100 using namespace std; long long E[maxn]; void euler() { E[1]=1; for(int i=2;i<maxn;i++) E[i]=i; for(int i=2;i<maxn;i++){ if(E[i]==i) for(int j=i;j<maxn;j+=i){ E[j]=E[j]/i*(i-1); } } for(int i=2;i<maxn;i++) E[i]+=E[i-1]; } int main() { euler(); int a,b; while(scanf("%d%d",&a,&b)!=EOF) printf("%lld\n",E[b]-E[a-1]); return 0; }
第二种
#include <stdio.h> #include <math.h> #include <vector> #include <queue> #include <string> #include <string.h> #include <stdlib.h> #include <iostream> #include <algorithm> #define maxn 3000000+100 using namespace std; long long E[maxn]; void euler() { for(int i=2;i<maxn;i++){ if(!E[i]) for(int j=i;j<maxn;j+=i){ if(!E[j])E[j]=j; E[j]=E[j]/i*(i-1); } E[i]+=E[i-1]; } } int main() { euler(); int a,b; while(scanf("%d%d",&a,&b)!=EOF) printf("%lld\n",E[b]-E[a-1]); return 0; }
相关文章推荐
- UVA 11134 FabledRooks 传说中的车 (问题分解)
- 2015 多校联赛 ——HDU5335(Walk out)
- JS中实现简单实用的HashMap
- 图文浅析Binder机制
- c++文件流
- 制作View覆盖层(大小,位置相同)CoverView
- 2015 多校联赛 ——HDU5335(Walk out)
- Apache Camel分解(split)与聚合(aggregate)
- 图文浅析Binder机制
- c++文件流
- CSS 的overflow:hidden 属性详细解释
- Fedora安装fedy
- JavaScript加密库 Crypto-JS
- 面试题1:赋值运算符函数
- Java中声明常量为什么用static修饰
- android杂记8:Color
- 【学习笔记】HTML5视频的属性、方法、事件介绍 详解
- linux系统中errno与error对照表
- Flex数字类型和Java数字类型的比较
- 鼠标移动出新文字