hdu 2824The Euler function
题目链接
快速求出a到b之间所有数的欧拉函数。
一个一个求肯定是不行的, 我们知道欧拉函数的公式为phi(n) = n*(1-1/i1)*(1-1/i2).......i1, i2为素因子。 那么我们就可以先将每一个数的欧拉函数值预处理出来。
具体看代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #define lson l, m, rt<<1 7 #define mem(a) memset(a, 0, sizeof(a)) 8 #define rson m+1, r, rt<<1|1 9 #define mem1(a) memset(a, -1, sizeof(a)) 10 #define mem2(a) memset(a, 0x3f, sizeof(a)) 11 #define rep(i, a, n) for(int i = a; i<n; i++) 12 #define ull unsigned long long 13 typedef pair<int, int> pll; 14 const double PI = acos(-1.0); 15 const double eps = 1e-8; 16 const int mod = 1e9+7; 17 const int inf = 1061109567; 18 const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} }; 19 const int maxn = 3e6+6;; 20 int f[maxn]; 21 int main() 22 { 23 int t, n, m, cnt; 24 for(int i = 2; i<=maxn; i++) { 25 f[i] = i; 26 } 27 for(int i = 2; i<maxn; i++) { 28 if(f[i] == i) { //如果f[i] == i, 说明这个数是素数 29 for(int j = i; j<maxn; j+=i) { 30 f[j] = f[j]/i*(i-1); //f[j]*(1-1/i) 31 } 32 } 33 } 34 while(~scanf("%d%d", &n, &m)) { 35 ll sum = 0; 36 for(int i = n; i<=m; i++) { 37 sum += f[i]; 38 } 39 cout<<sum<<endl; 40 } 41 }
转载于:https://www.cnblogs.com/yohaha/p/5045131.html
hdu 2824The Euler function相关推荐
- (hdu step 7.2.1)The Euler function(欧拉函数模板题——求phi[a]到phi[b]的和)
题目: The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
Problem D. Euler Function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java ...
- hdu 2824 The Euler function
欧拉函数~~ 第一次写欧拉函数,以前只知道其定义,以为编码按其过程一步一步的实现应该就可以,结果发现不太一样. 超时的想法:首先筛选素数,刚开始是筛选了N以内的所有素数,然后对于每个数,从小到大枚举素 ...
- Problem D. Euler Function HDU - 6322(欧拉数,找规律)
题目链接,继续嗖~~~~ 首先理解一下这些名词的意思: 欧拉数:比他小的数中,与他互质数的个数.(特别的a(1)=1) 互质数:两数除了1以外没有别的公约数. 合数:合数中除了能被1和本身整除外,还能 ...
- 模拟退火 HDU - 2899 Strange Function
Strange Function [ HDU - 2899 ] 题目大意: 函数 F(x) = 6x7 + 8x6 + 7x3 + 5x2 - yx, 其中x的范围是0 ≤ x ≤ 100. 输入y值 ...
- HDU 6156 Palindrome Function 数位DP
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...
- 【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)
题干: The shorter, the simpler. With this problem, you should be convinced of this truth. You a ...
- HDU 6124 Euler theorem
Euler theorem 思路:找规律 a 余数 个数 1 0 1 2 2 0 2 ...
- hdu 5597GTW likes function(欧拉函数)
题目链接:[hdu 5597] f(n)=sum((-1)^k * 2^(2n-2k) * C(k, 2n-k+1)) 0<=k<=n 这个公式化简之后就是f(x) = x+1 简单证 ...
最新文章
- RS232接口是如何工作的?
- 为什么Java进程使用的RAM比Heap Size大?
- python 语言教程(4)元组
- dnf一天能获得多少黑暗之眼_DNF:千万金币远古遗愿成废铁,95版本完美传说换装武器只需1个月...
- java poi excel 单元格样式_java poi批量导出excel 设置单元格样式
- sql 无法删除当前数据库,因为当前数据库正在使用
- 判断某程序是64位还是32位
- java nextgaussian(),java.util.Random.nextGaussian()
- COJ0700 数学(一)
- axios爬坑之provisional headers are shown
- python解决中文显示问题Glyph 24179 (\N{CJK UNIFIED IDEOGRAPH-5E73}) missing from current font. func(*args)
- ​电脑公司 GhostXP SP3装机版v2011.02(FAT32)
- matlab tdb,计算相图中的TDB文件 - 计算模拟 - 小木虫 - 学术 科研 互动社区
- insert into bak select * from test会锁表吗
- 2.18 小红书的表情文案一键生成,原来这么简单【玩赚小红书】
- Fitbit Flex 智能手环佩戴心得 主要说说过敏
- SOA记录何NS记录的区别
- c语言图书管理系统解析,基于C语言的图书管理系统的设计与实现解析.doc
- mac的python换字体_在Mac OS X 10.6上,无法在Python的Matplotlib中将字体更改为Helvetica...
- 仅在ACCESS窗体设计中,实现数据文件连接的方法