http://poj.org/problem?id=3090

首先,题目主要是求从0,0能看到的点的个数。

先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1的点)。

那么我们只需要计算斜率从0到1之间的个数就行了,不包括1,包括0.结果设为sum,那么最终就是2*sum+1.

1×1只有一个斜率为0的

2×2斜率有0,1/2(0已经算过了,以后不再算了),其实就多了一个斜率为1/2的。

3×3的时候,有1/3,2/3两个,比以前多了2个

4×4的时候,有1/4,2/4(1/2已经有过了),3/4,所以也是2个

5×5的时候,有1/5,2/5,3/5,4/5,之前都没有,所以多了4个

6×6得到时候,有1/6,2/6(1/3已经有了),3/6(1/2已经有了),4/6(2/3已经有了),5/6,所以只剩2个。

从上面可以发现一个规律,对于n×n,可以从0,0连接到(n,0)到(n,n)上,斜率将会是1/n,2/n......(n-1)/n;

凡是分子和分母能够约分的,也就是有公约数,前面都已经有过了。所以每次添加的个数就是分子和分母互质的个数。

#include<cstdio>
#include<iostream>
#include<cstring>
#define MAX 1005
using namespace std;
int phi[MAX];
void eular()
{phi[1]=1;for(int i=2;i<MAX;i++){if(!phi[i])for(int j=i;j<MAX;j+=i){if(!phi[j]) phi[j]=j;phi[j]=phi[j]/i*(i-1);}}
}
int main()
{int N,n; scanf("%d",&N);eular();for(int k=1;k<=N;k++){scanf("%d",&n);int ans=0;for(int i=1;i<=n;i++){ans+=(phi[i]);}ans=ans*2+1;printf("%d %d %d\n",k,n,ans);}return 0;
}

poj3090(欧拉函数)相关推荐

  1. 数论 —— 欧拉函数

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

  2. 【欧拉函数】 欧拉函数计算及打表

    文章目录 一.欧拉函数简介 二.欧拉函数计算 三.欧拉函数值打表 四.练手题目 一.欧拉函数简介 在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1).此函数以 ...

  3. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  4. hdu 1286( 欧拉函数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...

  5. 费马定理中值定理_数论-欧拉函数、欧拉定理

    欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...

  6. poj2154(Polya+欧拉函数优化模版)

    #include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...

  7. 【数学专题】约数个数与欧拉函数

    整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...

  8. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  9. bzoj 1409 Password 矩阵快速幂+欧拉函数

    可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...

  10. hdu1695(莫比乌斯)或欧拉函数+容斥

    题意:求1-b和1-d之内各选一个数组成数对.问最大公约数为k的数对有多少个,数对是有序的.(b,d,k<=100000) 解法1: 这个能够简化成1-b/k 和1-d/k 的互质有序数对的个数 ...

最新文章

  1. 堆排序——HeapSort
  2. HoloLens开发入门
  3. 深入浅出python机器学习_如何用python画三维图? add_subplot() Axes3D() plot_surface() gca()
  4. 51Nod 1322 - 关于树的函数(树DP)
  5. 文献学习(part77)--UNIC: A fast nonparametric clustering
  6. 堆的定义与操作(C语言)
  7. 6月份美国域名总量新增近5.4万个 环比减少51%
  8. linux shell指令 amp,shell入门基础amp;常见命令及用法
  9. mysql文件_mysql 的各种文件详细说明
  10. ubuntu 10.04下vmware tools安装和一些应用
  11. HDR关键技术:色度学,颜色空间及转换
  12. 牛客网项目——项目开发(六):点赞,关注和取关,优化登录
  13. 实验五:Telemetry静态订阅实验
  14. 搭建JIRA避坑指南
  15. 莫纳什大学计算机申请案例,莫纳什大学计算机系统工程学士申请.pdf
  16. 外贸客户催货催的很急的原因
  17. 最新,EI期刊目录更新,又有1本期刊被剔除
  18. 微信公众平台的基础对接
  19. Ubuntu 18.04配置及美化 (20.04 / 22.04基本相同)
  20. SpringBoot配置多数据源(MySQL+SQLServer)

热门文章

  1. 笔记本桌面右键新建菜单只有文件夹
  2. experiment : 使用WMI取本地计算机信息
  3. NYOJ6——喷水装置(一)(贪心)
  4. 2021年山东省安全员C证考试技巧及山东省安全员C证实操考试视频
  5. EGE绘图之一 绘图讲解
  6. 华科_图形学笔记_05_初探造型技术_01
  7. Guava入门~CacheStats
  8. 金融组织数字化研发管理的12种武器
  9. java xml 实体类_java中的xml与实体类之间的映射
  10. java 如何看装好没_如何查看Java配置好了没