poj-3090 Visible Lattice Point 求前n欧拉函数值的和
来源:互联网 发布:mac浏览器打开网页慢 编辑:程序博客网 时间:2024/05/21 18:44
题意:从(0,0)到(x,y)作一条线段,如果这条线段不经过其他的整点,那么称(x,y)是可见的。给出正方形的边n输出该平面所有可见的点。
分析:从(0,0)到(x,y)不经过其他整点,也即是说x,y是不可约的。x,y是互质的,该问题就转化为1到n内互质的数的对数,所以可通过求前n个欧拉函数值的和来确定。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std ;const int N=1005;int phi[N];void PHI(){for(int i=1;i<=N;i++){if(i&1) phi[i]=i;else phi[i]=i/2;}for(int i=3;i<=N;i+=2){if(phi[i]==i)for(int j=i;j<=N;j+=i) phi[j]=phi[j]/i*(i-1);}for(int i=2;i<=N;i++){phi[i]+=phi[i-1];}}int main(){int t,n; scanf("%d",&t); PHI(); for(int i=1;i<=t;i++){scanf("%d",&n);printf("%d %d %d\n",i,n,phi[n]*2+1); } return 0 ;}
- poj-3090 Visible Lattice Point 求前n欧拉函数值的和
- [poj 3090]Visible Lattice Point[欧拉函数]
- (Relax 数论1.9)POJ 3090 Visible Lattice Points(欧拉函数的应用:计算前n项欧拉数之和)
- POJ 3090 Visible Lattice Points 欧拉函数的应用
- POJ 3090 Visible Lattice Points 欧拉函数
- POJ 3090 Visible Lattice Points(欧拉函数)
- POJ 3090 Visible Lattice Points 欧拉函数
- POJ 3090 : Visible Lattice Points - 欧拉函数
- POJ 3090 Visible Lattice Points (欧拉函数)
- Poj 3090 Visible Lattice Points(欧拉函数)
- POJ 3090 Visible Lattice Points(欧拉函数)
- POJ 3090 Visible Lattice Points(欧拉函数)
- POJ 3090 Visible Lattice Points (欧拉函数)
- POJ 3090 Visible Lattice Points 欧拉函数运用
- 【POJ】3090 Visible Lattice Points 欧拉函数
- poj 3090 Visible Lattice Points (欧拉函数)
- POJ 2478 Farey Sequence & POJ 3090 Visible Lattice Points (欧拉函数)
- Visible Lattice Points poj+欧拉函数的应用+水水的过了
- osg animate 操作
- jquery position
- C4K_L2MAN-6-INVALIDSOURCEADDRESSPACKET
- Swipe Views(滑动视图)
- nginx 编译参数详解(运维不得不看)
- poj-3090 Visible Lattice Point 求前n欧拉函数值的和
- 理解Git——Merging(合并)
- Javascript_8_DOM_节点操作
- JAVA Base64编码-源码及应用
- 每日一算法:可能产生的集合
- 另一种发送邮箱的方法和实现验证码
- Loadrunner日志设置与查看
- Active Load Modulation(有源负载调制)
- IOS利用AVFoundation框架实现录音和播放(AVAudioSession、AVAudioRecorder、AVAudioPlayer)