题目链接

快速求出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相关推荐

  1. (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 ...

  2. HDU6322 Problem D. Euler Function【欧拉函数+数学规律】

    Problem D. Euler Function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java ...

  3. hdu 2824 The Euler function

    欧拉函数~~ 第一次写欧拉函数,以前只知道其定义,以为编码按其过程一步一步的实现应该就可以,结果发现不太一样. 超时的想法:首先筛选素数,刚开始是筛选了N以内的所有素数,然后对于每个数,从小到大枚举素 ...

  4. Problem D. Euler Function HDU - 6322(欧拉数,找规律)

    题目链接,继续嗖~~~~ 首先理解一下这些名词的意思: 欧拉数:比他小的数中,与他互质数的个数.(特别的a(1)=1) 互质数:两数除了1以外没有别的公约数. 合数:合数中除了能被1和本身整除外,还能 ...

  5. 模拟退火 HDU - 2899 Strange Function

    Strange Function [ HDU - 2899 ] 题目大意: 函数 F(x) = 6x7 + 8x6 + 7x3 + 5x2 - yx, 其中x的范围是0 ≤ x ≤ 100. 输入y值 ...

  6. HDU 6156 Palindrome Function 数位DP

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...

  7. 【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)

    题干: The shorter, the simpler. With this problem, you should be convinced of this truth.        You a ...

  8. HDU 6124 Euler theorem

    Euler theorem 思路:找规律 a       余数                  个数 1       0 1                     2 2       0 2   ...

  9. 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 简单证 ...

最新文章

  1. RS232接口是如何工作的?
  2. 为什么Java进程使用的RAM比Heap Size大?
  3. python 语言教程(4)元组
  4. dnf一天能获得多少黑暗之眼_DNF:千万金币远古遗愿成废铁,95版本完美传说换装武器只需1个月...
  5. java poi excel 单元格样式_java poi批量导出excel 设置单元格样式
  6. sql 无法删除当前数据库,因为当前数据库正在使用
  7. 判断某程序是64位还是32位
  8. java nextgaussian(),java.util.Random.nextGaussian()
  9. COJ0700 数学(一)
  10. axios爬坑之provisional headers are shown
  11. python解决中文显示问题Glyph 24179 (\N{CJK UNIFIED IDEOGRAPH-5E73}) missing from current font. func(*args)
  12. ​电脑公司 GhostXP SP3装机版v2011.02(FAT32)
  13. matlab tdb,计算相图中的TDB文件 - 计算模拟 - 小木虫 - 学术 科研 互动社区
  14. insert into bak select * from test会锁表吗
  15. 2.18 小红书的表情文案一键生成,原来这么简单【玩赚小红书】
  16. Fitbit Flex 智能手环佩戴心得 主要说说过敏
  17. SOA记录何NS记录的区别
  18. c语言图书管理系统解析,基于C语言的图书管理系统的设计与实现解析.doc
  19. mac的python换字体_在Mac OS X 10.6上,无法在Python的Matplotlib中将字体更改为Helvetica...
  20. 仅在ACCESS窗体设计中,实现数据文件连接的方法

热门文章

  1. IBM Webpshere6(WAS6) bug发现一例
  2. market layout
  3. What to bring in UK?
  4. nothing comes free
  5. 怎么快速看完700页的论文呢?
  6. 快速打开unity manual的方式
  7. 关于编译GITHUB上的工程
  8. Python数据类型(列表和元组)
  9. 使用Linux lvm
  10. 自定义装点博客的“门面”