数学之欧拉函数 &几道poj欧拉题
Posted ATM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学之欧拉函数 &几道poj欧拉题相关的知识,希望对你有一定的参考价值。
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
看不懂题目,看不懂别人的解题报告。。。好像很厉害的详解
以上是关于数学之欧拉函数 &几道poj欧拉题的主要内容,如果未能解决你的问题,请参考以下文章