数学之欧拉函数 &几道poj欧拉题

欧拉函数总结+证明

欧拉函数总结2


POJ 1284 原根

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std; int Euler(int n)
{
int res=n;
for(int i=2;i*i<=n;i++)
{
while(n%i==0)
{
n/=i; res-=(res/i);
while(n%i==0)
n/=i;
}
}
if(n>1)
res-=(res/n);
return res;
} int main()
{
int p;
while(~scanf("%d",&p))
printf("%d\n",Euler(p-1));
return 0;
}

POJ 2478  欧拉打表(不打表会TLE)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
#define N 1000000 int e[N+5];
void init()
{
int i,j;
memset(e,0,sizeof(e));
for(i=2;i<=N;i++)
{
if(!e[i])
{
for(j=i;j<=N;j+=i)
{
if(!e[j])
e[j]=j;
e[j]=e[j]/i*(i-1);
}
}
}
} int main()
{
int n;
init();
while(scanf("%d",&n)&&n)
{
ll res=0;
for(int i=2;i<=n;i++)
res+=e[i];
printf("%I64d\n",res);
}
return 0;
}


谜之POJ 3358

看不懂题目,看不懂别人的解题报告。。。好像很厉害的详解

上一篇:【SpringMVC】SpringMVC系列6之@CookieValue 映射请求Cookie 值


下一篇:初建FreeMarker工程