POJ_2478 Farey Sequence 【欧拉函数+简单递推】
一、题目
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
Output
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 【欧拉函数+简单递推】相关推荐
- poj2478 Farey Sequence (欧拉函数)
Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...
- 欧拉函数的性质及其证明
欧拉函数 ppp是素数,则有ϕ(p)=p−1\phi(p) = p - 1ϕ(p)=p−1 证明:显然. ppp是素数,n=pkn = p ^ kn=pk,则ϕ(n)=pk−pk−1\phi(n) = ...
- (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 ...
- 欧拉函数公式的证明以及欧拉定理的简单应用(附带证明)
相信大家都已经了解了欧拉函数的定义 在1~N当中,与N互质的数的个数被叫做欧拉函数,简写成Φ(N): 在算数基本定理中我们可以把一个数N分解成所有质因子的乘积的形式,记作 N = p1^a1 * p2 ...
- 欧拉函数(简单介绍+例题)
Acwing视频讲解 欧拉函数:正整数n,欧拉函数是小于n的正整数中与n互质的数的数目 N=p1a1 * p1a2 * p1a3 * -* p1ak 如果pj是i的最小质因子 红色区域一样 经推导得: ...
- 数论 —— 欧拉函数
[定义] 对正整数 n,欧拉函数是小于等于 n 的数中与 n 互质的数的个数,记作: 例如:,因为 1.3.5.7 均与 8 互质. [性质] 1)若 n 为一素数 p,则: 2)若 n 为一素数 p ...
- 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...
- 初等数论--同余--欧拉函数、欧拉定理、费马小定理
初等数论--同余--欧拉函数.欧拉定理.费马小定理 概念 同余类,既约同余类 欧拉函数 完全剩余系,既约剩余系 关于完全剩余系.既约剩余系一些比较简单的定理 欧拉定理.费马小定理 博主是初学初等数论( ...
- poj 3090 amp;amp; poj 2478(法雷级数,欧拉函数)
http://poj.org/problem?id=3090 法雷级数 法雷级数的递推公式非常easy:f[1] = 2; f[i] = f[i-1]+phi[i]. 该题是法雷级数的变形吧,答案是2 ...
最新文章
- McCabe度量法计算程序的环路复杂性
- 腾讯员工上半年人均月薪 7.8 万,网友:别人拿月薪我拿年薪。。。
- Oracle中用一个序列给两个表创建主键自增功能的后果
- R语言第八讲续 评估模型之自助法分析案例
- Android官方开发文档Training系列课程中文版:添加ActionBar之添加Action按钮
- Spring的数据库编程浅入浅出——不吹牛逼不装逼
- 程序员谈如何掌握计算机专业英语
- 第六章 使用ADO.NET查询和操作数据
- fastjson使用-- @JSONField使用(转)
- rtlab matlab版本,电力电子技术教学中电力仿真软件选择与应用.doc
- Linux网络的网络配置(超详细,百分百成功)
- Ubuntu 配置固定IP方法
- ThoughtWorks笔试题汇总
- 什么是光电耦合器?光耦有哪些类型
- qq飞车手游服务器找不到了,QQ飞车手游服务器拉取失败是怎么回事
- c罩杯尺码_B、C罩杯有多大?
- 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
- 双胺基修饰MOF/GO烯复合材料|硫修饰Cu基MOF材料|磁性纳米多孔碳材料FeO@C|mof材料的复杂定制
- 当公路的规则与秩序,被昇腾AI时刻守护
- java破解WIFI
热门文章
- Mac OS X 下 TAR.GZ 方式安装 MySQL5.6
- 计算机网络知识点回顾
- ios 7.1.2 拍照声音
- 【转】HttpCompress
- Python 处理各种编码的字符串
- ubuntu安装ssh无法连接解决日志(已解决,可连接)-转
- L2-026 小字辈-PAT团体程序设计天梯赛GPLT
- python函数调用的三种方式_python函数调用的四种方式
- 解答:一个perl操作config.ini的出现的 cannot find file or dirctionary,可明明文件存在
- webcontent 与 webroot 问题解决