<题目链接>

题目大意:

给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点。

解题分析:
很明显,因为 (1 ≤ N ≤ 1000) ,所以无论 N 为多大,(0,1),(1,1),(1,0)这三个点一定能够看到,除这三个点以外,我们根据图像分析可得,设一个点的坐标为(x,y) ,那么只有符合gcd(x,y)=1的点才能被看到。又因为 (0,0)---(n,n)对角线两端的点对称,所以我们只需算一边即可,而一边的点数根据欧拉函数可得: $\sum_{i=2}^{n}\varphi{(i)}$

所以最终的点数为:$$2*\sum_{i=2}^{n}\varphi{(i)}+3$$

#include <cstdio>
#define N int(1e3+10)
typedef long long ll;
int euler[N];
void init(){euler[1]=1;for(int i=2;i<N;i++)euler[i]=i;for(int i=2;i<N;i++)if(euler[i]==i)for(int j=i;j<N;j+=i)euler[j]=euler[j]/i*(i-1);
}
int main(){init();int T,ncase=0;scanf("%d",&T);while(T--){int n;scanf("%d",&n);ll ans=0;for(int i=2;i<=n;i++)ans+=euler[i];printf("%d %d %d\n",++ncase,n,2*ans+3);}
}

2019-02-12

转载于:https://www.cnblogs.com/00isok/p/10363755.html

POJ 3090 Visible Lattice Points 【欧拉函数】相关推荐

  1. poj 3090 Visible Lattice Points(离线打表)

    这是好久之前做过的题,算是在考察欧拉函数的定义吧. 先把欧拉函数讲好:其实欧拉函数还是有很多解读的.emmm,最基础同时最重要的算是,¢(n)表示范围(1, n-1)中与n互质的数的个数 好了,我把规 ...

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

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

  3. POJ - 1284 Primitive Roots(原根+欧拉函数)

    题目链接:点击查看 题目大意:给出一个模数 p ,求 p 有多少个原根 题目分析:算是补充了一个知识点吧,模数 p 的原根个数为 p[ p[ n ] ] ,p 为欧拉函数 证明博客:https://b ...

  4. POJ - 2480 Longge's problem(欧拉函数+唯一分解定理)

    题目链接:点击查看 题目大意:给出一个n,求 题目分析:因为N到了二的三十二次方,所以直接暴力肯定会T,这里介绍两种方法,都可以做实现这个题目 首先我们需要转化一下这个题目,先说一下优化过后的暴力枚举 ...

  5. Relatives POJ - 2407(不打表的欧拉函数 单求)

    Relatives POJ - 2407 题目链接:https://vjudge.net/problem/POJ-2407#author=0 题目: 给定n是一个正整数,有多少正整数小于n是n的相对素 ...

  6. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  7. 数论 - 分解质因数+欧拉函数 - Relatives POJ - 2407

    数论 - 分解质因数+欧拉函数 文章目录 数论 - 分解质因数+欧拉函数 一.分解质因数 二.欧拉函数 三.模板: Relatives POJ - 2407 一.分解质因数 由 算 术 基 本 定 理 ...

  8. poj 2480 (欧拉函数应用)

    点击打开链接 //求SUM(gcd(i,n), 1<=i<=n) /*g(n)=gcd(i,n),根据积性定义g(mn)=g(m)*g(n)(gcd(m,n)==1)所以gcd(i,n)是 ...

  9. POJ 3696 欧拉函数+快速幂

    题目的意思大概就是问是否存在一串全是8的数字是L的倍数 直接想没有什么想法,要想到用简洁的形式将这个数字表示出来,对于每一位都是8的数字我们可以用 X=8*(10k-1)/9的形式表示出来,那么题目的 ...

最新文章

  1. VS2008修改工程名
  2. CPU也支持AI加速,英特尔发布第3代至强处理器,推理速度提升80%,阿里腾讯云都在用...
  3. 三阶魔方自动还原 vc实现
  4. python3对urllib和urllib2进行了重构
  5. Cesium调用Geoserver发布的 WMS、WFS服务
  6. 前端学习(1841):前端面试题之redux管理状态机制
  7. tensorrt基础知识+torch版lenet转c++ trt
  8. 子元素浮动,父元素高度为0现象解释和原理浅见
  9. APP设计UI优秀案例|价格标签这样设计才更直观!
  10. 随想录(rtos和一般os的区别)
  11. python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包
  12. Python安装geopandas库
  13. 车道线检测-python实现
  14. 三块金砖---感晤CIO的人生‏
  15. 做SEO优化第九步:如何设置页面内容优化
  16. STC12C5A60S2 双串口
  17. 帝国cms php超时,帝国CMS后台登录超时、登录错误5次限制的解决办法
  18. C语言实现水果超市信息管理系统
  19. [note]如何删除linux内核
  20. 8188EU 在AM335X MC183上以AP+STA工作

热门文章

  1. [No0000111]java9环境变量配置bat
  2. 分享12306抢票心得-终极秒杀思路篇
  3. 学习进度(2016.3.13)
  4. ibatis中使用List作为传入参数的使用方法及 CDATA使用
  5. CodeForces369C On Changing Tree
  6. c# 2.0 Factory的实现
  7. [c++] - 简单的冒泡
  8. ES6-15 map与set
  9. Jenkins持续集成 之 Jenkins安装
  10. SocketErrorCode:10022