poj 2478 Farey Sequence(欧拉函数)
2014-06-06 12:53
483 查看
poj 2478 Farey Sequence
以n为底的最简分数的个数为phi(n)
递推欧拉函数值打表的复杂度为O(n*logn)
#include<stdio.h>
#include<string.h>
#define ll long long
#define MAXN 1000001
ll phi[MAXN];
int main()
{
//递推打表欧拉函数值
for(int i=1;i<MAXN;i++) phi[i]=i;
for(int i=2;i<MAXN;i+=2) phi[i]/=2;
for(int i=3;i<MAXN;i+=2)
if(phi[i]==i)
{
for(int j=i;j<MAXN;j+=i)
phi[j]=phi[j]/i*(i-1);
}
for(int i=3;i<MAXN;i++)
phi[i]+=phi[i-1];
int n;
while(scanf("%d",&n)!=EOF&&n)
printf("%lld\n",phi
);
return 0;
}
以n为底的最简分数的个数为phi(n)
递推欧拉函数值打表的复杂度为O(n*logn)
#include<stdio.h>
#include<string.h>
#define ll long long
#define MAXN 1000001
ll phi[MAXN];
int main()
{
//递推打表欧拉函数值
for(int i=1;i<MAXN;i++) phi[i]=i;
for(int i=2;i<MAXN;i+=2) phi[i]/=2;
for(int i=3;i<MAXN;i+=2)
if(phi[i]==i)
{
for(int j=i;j<MAXN;j+=i)
phi[j]=phi[j]/i*(i-1);
}
for(int i=3;i<MAXN;i++)
phi[i]+=phi[i-1];
int n;
while(scanf("%d",&n)!=EOF&&n)
printf("%lld\n",phi
);
return 0;
}
相关文章推荐
- poj 2478 Farey Sequence(欧拉函数)
- poj 2478 Farey Sequence 线性筛法优化的欧拉函数
- poj 2478 Farey Sequence(欧拉函数)
- poj 2478 Farey Sequence(基于素数筛法求欧拉函数)
- POJ - 2478 - Farey Sequence (欧拉函数)
- POJ 2478 Farey Sequence 筛选法求欧拉函数
- POJ 2478 Farey Sequence(法雷级数+欧拉函数递推)
- poj 2478 Farey Sequence(递推求欧拉函数)
- POJ2478 Farey Sequence【快速求欧拉函数】
- POJ 2478-Farey Sequence(欧拉函数)
- POJ 2478-Farey Sequence(筛选法求欧拉函数)
- poj2478 Farey Sequence (欧拉函数)
- POJ - 2478_Farey Sequence_线性筛求欧拉函数值
- poj 2478 Farey Sequence(欧拉函数)
- Poj 2478-Farey Sequence 欧拉函数,素数,线性筛
- POJ 2478 Farey Sequence(欧拉函数)
- POJ 2478 Farey Sequence 解题报告(欧拉函数 筛求法)
- poj 2478 Farey Sequence(基于素数筛法欧拉函数)
- poj 2478 Farey Sequence 欧拉函数递推打表
- poj 2478 Farey Sequence(欧拉函数是基于寻求筛法素数)