题目链接:http://poj.org/problem?id=2478

Farey Sequence
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 19736   Accepted: 7962

Description

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 <= 106). 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

Source

POJ Contest,Author:Mathematica@ZSU
题目大意:很容易可以发现是求2-n的所有数的欧拉函数值之和
看代码:
/**
有三条特性
若a为质数  phi[a]=a-1
若a为质数,b%a==0   phi[a*b]=phi[b]*a;
若a b 互质  phi[a*b]=phi[a]*phi[b](当a为质数  如果b%a!=0)*/
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
const int maxn=1e6+50;
int phi[maxn],prime[maxn],p[maxn];//phi[i]代表i的欧拉函数值  prime[i]=0代表是素数 1代表不是素数   p存储素数
void make()
{phi[1]=1;//特例int num=0;for(int i=2;i<=maxn;i++){if(!prime[i])//是素数
        {p[num++]=i;//
            phi[i]=i-1;//素数的欧拉函数值就是它的值减1
        }for(int j=0;j<num&&p[j]*i<maxn;j++)//用当前已经得到的素数筛去p[j]*i
        {prime[p[j]*i]=1;//可以确定p[j]*i不是质数if(i%p[j]==0)//第二条特性
            {phi[p[j]*i]=phi[i]*p[j];break;//欧拉筛的核心语句  保证每个数只会被自己最小的质因子筛掉一次
            }else phi[p[j]*i]=phi[i]*phi[p[j]];}}return ;
}int main()
{make();int n;while(scanf("%d",&n)!=EOF){if(n==0) break;LL sum=0;for(int i=2;i<=n;i++) sum+=phi[i];printf("%lld\n",sum);}
//    for(int i=1;i<=100;i++) cout<<phi[i]<<" ";return 0;
}

转载于:https://www.cnblogs.com/caijiaming/p/10638640.html

Farey Sequence(欧拉函数板子题)相关推荐

  1. poj2478 Farey Sequence (欧拉函数)

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

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

  3. hdu 1286 找新朋友 欧拉函数模版题

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Des ...

  4. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

  5. 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 ...

  6. TOJ 3990.I guess the gift is a bag! II(质因数、欧拉函数好题)

    题目链接 : http://acm.tju.edu.cn/toj/showp3990.html Coach Yu has lots of bags, every bag has its number. ...

  7. 欧拉函数的一道练习题(附加容斥做法)

    jzd同学今天告诉了我们一道关于欧拉函数的题,一开始觉得毫无头绪,当身旁的erge同学切完开始装(xiao)逼(zhang)的时候,他无意间透露的欧拉函数四个字启发了我,最近做了一道很相似的题HDU1 ...

  8. 数学--数论-数论函数-欧拉函数

    **欧拉函数定义 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.例如euler(8)=4,因为1,3,5,7均和8互质. Euler函数表达通式: 其中p1,p2--pn为x的所有素因数 ...

  9. 【4.3 欧拉函数详解】

    更好的阅读体验\color{red}{更好的阅读体验}更好的阅读体验 目录 4.3.1 公式法求欧拉函数 4.3.2 筛法求欧拉函数 概念 1∼N1∼N1∼N中与NNN互质的数的个数被称为欧拉函数,记 ...

最新文章

  1. Linux下SSH命令使用方法详解
  2. PDF文件上载图标,与启用浏览器浏览允许后依然无法在浏览器打开PDF文件的解决方案...
  3. mysql 查询从库状态_Mysql库表状态查询
  4. P4593-[TJOI2018]教科书般的亵渎【拉格朗日差值】
  5. 浅谈Fluent Ribbon 中的SplitButton
  6. 【转】C#获取用户桌面等特殊系统路径
  7. 一名 40 岁“老”程序员的反思
  8. “中国创业第一书”签售会将在蓉城举行(转)
  9. uni-app开发开发h5,小程序,app,注意事项
  10. 我爸的电脑中了勒索病毒
  11. HTML5 电子罗盘开发
  12. 或非门sr锁存器_问:或非门构成的基本SR锁存器当SR=10时,锁存器输出什么状态?...
  13. 数据结构之一元多项式相加
  14. 如何低成本获得流量?分享购的商业模式了解一下
  15. 都快2021年了,居然还有数据分析师不会MECE
  16. html css 如何将图片作为背景,CSS背景图片和HTML中的img标签
  17. Python 爬虫 Selenium 基本使用
  18. visio2007或office 2007安装失败提示一个或多个受保护的windows文件导致office 2007安装失败
  19. AT765 真冬日?真夏日?
  20. 【思路】2021美国大学生数学建模竞赛(美赛)思路+参考文献获取/【2021美国大学生数学建模】

热门文章

  1. Pictures Test
  2. 一位Erlang程序员的自白
  3. Hive,Hbase shell 中文变问号(??) 的解决方法
  4. 解决BLOB/TEXT column can‘t have a default value query问题
  5. System.Data.OleDb.OleDbException: 未指定的错误的解决方法
  6. 解决 Oracle TNSListener 服务启动找不到路径问题
  7. ROS入门-14.参数的使用与编程方法
  8. 01背包问题python实现
  9. 在基于对话框的MFC创建状态栏以及添加时间显示
  10. Leetcode 513 javascript