XTU OJ 1355 Euler’s Totient Function(欧拉函数)

题目描述

对于整数n,定义ϕ(n)ϕ(n)ϕ(n)为小于或等于n,并与n互质的整数的个数,比如6,比它小的和它互质的数有1,5,所以ϕ(6)=2ϕ(6)=2ϕ(6)=2。 如果n=p1k1⋅p2k2⋅…⋅pmkmn=p_1^{k_1}⋅p_2^{k_2}⋅…⋅p_m^{k_m}n=p1k1​​⋅p2k2​​⋅…⋅pmkm​​,其中pip_ipi​为不相同的素数。 那么ϕ(n)=n⋅(1−1p1)⋅…⋅(1−1pm)ϕ(n)=n⋅(1−\frac1{p_1})⋅…⋅(1−\frac1{p_m})ϕ(n)=n⋅(1−p1​1​)⋅…⋅(1−pm​1​)。
我们定义f(a,b)=∑i=abϕ(i)f(a,b)=∑^b_{i=a}ϕ(i)f(a,b)=∑i=ab​ϕ(i),请你写一个程序求f(a,b)f(a,b)f(a,b)。

输入

第一行是一个整数T(1≤T≤10000)T(1≤T≤10000)T(1≤T≤10000),表示样例的个数。 每个样例是一行,为两个整数a,b(1≤a≤b≤3000000)a,b(1≤a≤b≤3000000)a,b(1≤a≤b≤3000000)。

输出

每行输出一个样例的结果。

样例输入

3
1 6
1 100
1 1000000

样例输出

12
3044
303963552392

提示

巨大的输入输出,请使用C风格的输入输出。

题解

既然是欧拉函数,势必要用到欧拉筛法(强烈建议各位还没学的小伙伴去学一下),关于欧拉函数的性质,百度百科上有,附上链接:欧拉函数。
简单概括如下:
①φ(n)=n∗∏(pi−1pi)φ(n)=n*\prod(\frac{p_i -1}{p_i})φ(n)=n∗∏(pi​pi​−1​);
②当两个数a,b互为质数,即gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1时,欧拉函数φ(a∗b)=φ(a)∗φ(b)φ(a*b)=φ(a)*φ(b)φ(a∗b)=φ(a)∗φ(b);
③当n是质数时,有φ(n)=n−1φ(n)=n-1φ(n)=n−1;
下面是推导过程的截图(截至oi-wiki)

下面直接上代码

#include <stdio.h>
#define MAXLEN 3000000
int prime[220000] = { 0 };
int check[MAXLEN + 1] = { 0 };
__int64 phi[MAXLEN + 1] = { 0 };//避免累加的过程中数据溢出int main() {int ordNum = 1;int i, j;phi[1] = 1;for (i = 2; i <= MAXLEN; i++) {if (!check[i]) {prime[ordNum++] = i;phi[i] = (__int64)i - 1;//见欧拉函数性质}for (j = 1; j <= ordNum; j++) {if (i * prime[j] > MAXLEN)break;check[i * prime[j]] = 1;if (i % prime[j] == 0) {phi[i * prime[j]] = phi[i] * prime[j];break;}else phi[i * prime[j]] = phi[i] * phi[prime[j]];//见欧拉函数的性质}}for (i = 2; i <= MAXLEN;i++) {//前缀和phi[i] += phi[i - 1];}int T;scanf_s("%d", &T);while (T--) {int a, b;scanf_s("%d %d", &a, &b);printf("%I64d\n", phi[b] - phi[a - 1]);}return 0;
}

另外,这道题时限较松,也可以用埃氏筛法来写,大家可以试试!有更好的解法欢迎在评论区留言!

XTU OJ 1355 Euler‘s Totient 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. hdu5597GTW likes function+欧拉函数

    Problem Description Now you are given two definitions as follows. f(x)=∑xk=0(−1)k22x−2kCk2x−k+1,f0(x ...

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

  4. 一欧拉函数(Euler‘s totient function)

    算法总结 一欧拉函数(Euler's totient function) 欧拉函数的定义: 在数论中,对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n). φ ...

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

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

  6. UVA10990 Another New Function【欧拉函数打表】

    The depth of phi value of a number is denoted by the number of steps required before it reaches 1. A ...

  7. hdoj GTW likes function 5597 (裸欧拉函数)

    GTW likes function Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Oth ...

  8. HDU 5597 GTW likes function(规律+欧拉函数模板题)——BestCoder Round #66(div.1 div.2)

    GTW likes function Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Oth ...

  9. HDOJ 5597 GTW likes function (欧拉函数)

    GTW likes function Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Oth ...

最新文章

  1. 采集虚拟机_系列文章:Kubernetes日志采集最佳实践
  2. jquery 3D分页翻转滑块
  3. 【Android UI设计与开发】第16期:滑动菜单栏(一)
  4. (JAVA学习笔记) 关于类的封装
  5. Android -- Webview自适应屏幕
  6. 少儿编程150讲轻松学Scratch(二)-制作过马路小游戏
  7. 东北师范大学计算机学院的导师,东北师范大学计算机科学与信息技术学院研究生导师简介-王佳男...
  8. 计算机学校的奖项,2017年度国家科学技术奖各奖项公示
  9. python实现推荐系统代码_推荐系统之矩阵分解及其Python代码实现
  10. MTK DRM常见问题介绍
  11. 面向对象JavaScript入门——来自Mozilla的官网教程
  12. Paste for mac(剪切板管理工具)
  13. 测绘工程野外测量实践实习
  14. nodejs学习笔记-1-文件系统
  15. 使用SubSonic生成数据访问层步骤
  16. VB_NET程序设计教程
  17. 前后端分离-CRUD
  18. python玩汉诺塔游戏攻略
  19. 从零搭建vue-ssr详细介绍
  20. 计算机无法识别ipad2,iTunes无法识别iPad mini怎么办【解决方法】

热门文章

  1. TypeScript/JavaScript 2021-02-25T03:34:35.772Z 时区 日期格式化
  2. 聊聊无线充电——华为Mate RS保时捷版无线充电器详解(上篇)
  3. 公网域名解析(转自华为云)
  4. 互联网入侵教育培训业 在线教育优势弊端在哪?
  5. Skynet中环境变量的 skynet.getenv 和 skynet.setenv 的实现
  6. 大数据之数据倾斜剖析
  7. 铁乐学python_day18-19_面向对象编程1
  8. php网页可视化编辑器,在线HTML可视化编辑器KindEditor | 严佳冬
  9. C/S模式和B/S模式
  10. 乡村爱情故事8 下载地址