hdu 2824 The Euler function (欧拉函数)
2014-04-08 09:53
423 查看
The Euler function
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3333 Accepted Submission(s): 1368
[align=left]Problem Description[/align]
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)
[align=left]Input[/align]
There are several test cases. Each line has two integers a, b (2<a<b<3000000).
[align=left]Output[/align]
Output the result of (a)+ (a+1)+....+ (b)
[align=left]Sample Input[/align]
3 100
[align=left]Sample Output[/align]
3042
[align=left]Source[/align]
2009 Multi-University Training Contest 1 - Host by TJU
[align=left]Recommend[/align]
gaojie | We have carefully selected several similar problems for you: 2818 2825 2817 2822 2820
求欧拉函数,打表题:
//453MS 23700K 484 B G++ #include<stdio.h> #define N 3000005 __int64 ans ; void init() { for(int i=1;i<N;i++) ans[i]=i; for(int i=2;i<N;i+=2) ans[i]/=2; for(int i=3;i<N;i+=2) if(ans[i]==i){ for(int j=i;j<N;j+=i) ans[j]=ans[j]/i*(i-1); } } int main(void) { int a,b; init(); while(scanf("%d%d",&a,&b)!=EOF) { __int64 ret=0; for(int i=a;i<=b;i++) ret+=ans[i]; printf("%I64d\n",ret); } return 0; }
相关文章推荐
- 火星坐标和正常坐标之间的转换
- tomcat热部署的实现原理
- 古堡仙境,欧洲最美最著名的十大城堡
- 微信公众平台消息接口开发(1)启用接口
- 安卓图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- Delphi报表控件QuickReport VS FastReport对比
- MATLAB入门教程(转)
- 迷宫一题,我卡住了一个星期,求帮助
- IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc
- Android蓝牙开发之数据窜位和数据接收错误以及重组字节数据
- 如何使JTextArea随着窗体的变化自动调整大小
- 浅谈iPhone OS(iOS)架构
- Remove Duplicates from Sorted List
- JTextArea设置滚动条
- 如何为iPhone 5S编译64位应用
- 算法学习八----约瑟夫问题
- 安卓图表引擎AChartEngine(二) - 示例源码概述和分析
- Android中的消息机制
- 解決在 Xcode 5.1环境下property所造成的 synthesis warning问题?