一、题目

The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b <= n and gcd(a,b) = 1 arranged in increasing order. The first few are 
F2 = {1/2} 
F3 = {1/3, 1/2, 2/3} 
F4 = {1/4, 1/3, 1/2, 2/3, 3/4} 
F5 = {1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5}

You task is to calculate the number of terms in the Farey sequence Fn.

Input

There are several test cases. Each test case has only one line, which contains a positive integer n (2 <= n <= 10 6). There are no blank lines between cases. A line with a single 0 terminates the input.

Output

For each test case, you should output one line, which contains N(n) ---- the number of terms in the Farey sequence Fn. 

Sample Input

2
3
4
5
0

Sample Output

1
3
5
9

二、题意分析

题意就是给你一个范围内的正整数N,让你去用1~N的数字去组合成Farey序列。关于Farey序列,依题意可知,就是1~N的数字中互素的a,b,其中a<b,就可以凑成一个a/b。然后问有多少个不同的a/b。

我们先看2,就一个,看3,发现2有的3肯定有,然后其余的就是与3互质的数与3凑成的a/b。再看4,3有的还是有,然后再加上与4互质的数与4凑成的a/b。依次递推下去。就是欧拉函数的前N项和。用一个数组累加保存下来,就是所有结果了,再用线性筛法去求欧拉函数(可以看我之前的欧拉函数学习笔记),速度绝对够。需要注意的是,结果增长的很快,需要用long long。

三、AC代码

  

#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 1e6+5;
int Phi[MAXN], Prime[MAXN], nPrime;
long long Ans[MAXN];void Euler()
{memset(Phi, 0, sizeof(Phi));Phi[1] = 1;nPrime = 0;for(int i = 2; i < MAXN; i++){if(!Phi[i]) //i为素数{Phi[i] = i - 1;Prime[nPrime++] = i;}for(int j = 0; j < nPrime && (long long)i*Prime[j] < MAXN; j++){if(i%Prime[j]){Phi[ i*Prime[j] ] = Phi[i]*(Prime[j]-1);}else{Phi[ i*Prime[j] ] = Phi[i]*Prime[j];break;}}}return;
}void solve()
{Euler();Ans[2] = Phi[2];for(int i = 3; i < MAXN; i++){Ans[i] = Ans[i-1] + Phi[i];}return;
}int main()
{int N;solve();while(cin>>N && N){cout << Ans[N] << endl;}return 0;
}

  

转载于:https://www.cnblogs.com/dybala21/p/9747695.html

POJ_2478 Farey Sequence 【欧拉函数+简单递推】相关推荐

  1. poj2478 Farey Sequence (欧拉函数)

    Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...

  2. 欧拉函数的性质及其证明

    欧拉函数 ppp是素数,则有ϕ(p)=p−1\phi(p) = p - 1ϕ(p)=p−1 证明:显然. ppp是素数,n=pkn = p ^ kn=pk,则ϕ(n)=pk−pk−1\phi(n) = ...

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

  4. 欧拉函数公式的证明以及欧拉定理的简单应用(附带证明)

    相信大家都已经了解了欧拉函数的定义 在1~N当中,与N互质的数的个数被叫做欧拉函数,简写成Φ(N): 在算数基本定理中我们可以把一个数N分解成所有质因子的乘积的形式,记作 N = p1^a1 * p2 ...

  5. 欧拉函数(简单介绍+例题)

    Acwing视频讲解 欧拉函数:正整数n,欧拉函数是小于n的正整数中与n互质的数的数目 N=p1a1 * p1a2 * p1a3 * -* p1ak 如果pj是i的最小质因子 红色区域一样 经推导得: ...

  6. 数论 —— 欧拉函数

    [定义] 对正整数 n,欧拉函数是小于等于 n 的数中与 n 互质的数的个数,记作: 例如:,因为 1.3.5.7 均与 8 互质. [性质] 1)若 n 为一素数 p,则: 2)若 n 为一素数 p ...

  7. 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数

    题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...

  8. 初等数论--同余--欧拉函数、欧拉定理、费马小定理

    初等数论--同余--欧拉函数.欧拉定理.费马小定理 概念 同余类,既约同余类 欧拉函数 完全剩余系,既约剩余系 关于完全剩余系.既约剩余系一些比较简单的定理 欧拉定理.费马小定理 博主是初学初等数论( ...

  9. poj 3090 amp;amp; poj 2478(法雷级数,欧拉函数)

    http://poj.org/problem?id=3090 法雷级数 法雷级数的递推公式非常easy:f[1] = 2; f[i] = f[i-1]+phi[i]. 该题是法雷级数的变形吧,答案是2 ...

最新文章

  1. McCabe度量法计算程序的环路复杂性
  2. 腾讯员工上半年人均月薪 7.8 万,网友:别人拿月薪我拿年薪。。。
  3. Oracle中用一个序列给两个表创建主键自增功能的后果
  4. R语言第八讲续 评估模型之自助法分析案例
  5. Android官方开发文档Training系列课程中文版:添加ActionBar之添加Action按钮
  6. Spring的数据库编程浅入浅出——不吹牛逼不装逼
  7. 程序员谈如何掌握计算机专业英语
  8. 第六章 使用ADO.NET查询和操作数据
  9. fastjson使用-- @JSONField使用(转)
  10. rtlab matlab版本,电力电子技术教学中电力仿真软件选择与应用.doc
  11. Linux网络的网络配置(超详细,百分百成功)
  12. Ubuntu 配置固定IP方法
  13. ThoughtWorks笔试题汇总
  14. 什么是光电耦合器?光耦有哪些类型
  15. qq飞车手游服务器找不到了,QQ飞车手游服务器拉取失败是怎么回事
  16. c罩杯尺码_B、C罩杯有多大?
  17. 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
  18. 双胺基修饰MOF/GO烯复合材料|硫修饰Cu基MOF材料|磁性纳米多孔碳材料FeO@C|mof材料的复杂定制
  19. 当公路的规则与秩序,被昇腾AI时刻守护
  20. java破解WIFI

热门文章

  1. Mac OS X 下 TAR.GZ 方式安装 MySQL5.6
  2. 计算机网络知识点回顾
  3. ios 7.1.2 拍照声音
  4. 【转】HttpCompress
  5. Python 处理各种编码的字符串
  6. ubuntu安装ssh无法连接解决日志(已解决,可连接)-转
  7. L2-026 小字辈-PAT团体程序设计天梯赛GPLT
  8. python函数调用的三种方式_python函数调用的四种方式
  9. 解答:一个perl操作config.ini的出现的 cannot find file or dirctionary,可明明文件存在
  10. webcontent 与 webroot 问题解决