欧拉函数
来源:互联网 发布:网上数据库参考文献 编辑:程序博客网 时间:2024/05/16 00:38
欧拉函数模板
int oula(int n){int i,ans=n;for(i=2;i*i<=n;i++){if(n%i==0)ans=ans-ans/i;while(n%i==0)n/=i;}if(n>1)ans=ans-ans/n;return ans;}欧拉函数打表
void table(){int i,j;for(i=2;i<=N;i++)p[i]=0;p[1]=1;for(i=2;i<=N;i++){if(p[i]==0)for(j=i;j<=N;j+=i){if(p[j]==0)p[j]=j;p[j]=p[j]/i*(i-1);}}}poj 2478思路:给定一个数n,求在[1,n]这个范围内两两互质的组合数。则问题可以转化为给定一个数n,比n小且与n互质的数的个数。这个就是典型的欧拉函数问题了。点击打开链接#include<iostream>#include <string.h>#include<cstdio>#include<cstdlib>#define N 1000009using namespace std;int p[N],a[N];void table(){int i,j;for(i=2;i<=N;i++)p[i]=0;p[1]=1;for(i=2;i<=N;i++){if(p[i]==0)for(j=i;j<=N;j+=i){if(p[j]==0)p[j]=j;p[j]=p[j]/i*(i-1);}}}int main(){int n,y,i;long long t;//注意要用long longtable();while(scanf("%d",&n)&&n){t=0;for(i=2;i<=n;i++)t+=p[i];printf("%lld\n",t);}return 0;}
poj 1284题目大意就是给出一个奇素数,求出他的原根的个数,定义n的原根x满足条件0<x<n,并且有集合{ (xi mod n) | 1 <= i <=n-1 } 和集合{ 1, ..., n-1 }相等
如果知道欧拉函数的话,看出的答案是p(n-1)其实也不难
定理:如果p有原根,则它恰有φ(φ(p))个不同的原根,p为素数,当然φ(p)=p-1,因此就有φ(p-1)个原根点击打开链接<span style="font-family:SimHei;color:#000000;">#include<iostream>#include <string.h>#include<cstdio>#include<cstdlib>#define N 1000009using namespace std;int p[N];void table(){int i,j;for(i=2;i<=N;i++)p[i]=0;p[1]=1;for(i=2;i<=N;i++)if(p[i]==0)for(j=i;j<=N;j+=i){if(p[j]==0)p[j]=j;p[j]=p[j]/i*(i-1);}}int main(){int n,y,i;table();while(scanf("%d",&n)!=EOF){printf("%d\n",p[n-1]);}return 0;}</span>poj 2407题目大意就是给一个数n,求出不大于n且与n互素的数的个数,
这就是简单的欧拉函数的运用
点击打开链接#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;int oula(int n){int i,ans=n;for(i=2;i*i<=n;i++){if(n%i==0)ans=ans-ans/i;while(n%i==0)n/=i;}if(n>1)ans=ans-ans/n;return ans;}int main(){int n,ans,i;while(scanf("%d",&n)&&n){ans=oula(n);printf("%d\n",ans);}return 0;}
0 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- 公司间交易-没发货就不能收货处理
- Darknet(YOLO)安装与测试笔记(T440p+Ubuntu14.04+OpenCV2.4.10+CUDA7.5)
- 存储单位研究
- Integer自动缓存池大小
- java基础知识(2)
- 欧拉函数
- Spring MVC @Transactional注解方式事务无效的解决方法
- CRC\MD5\SHA1加密效验算法异同点
- 经典C语言笔试面试题汇总整理
- KMP算法
- Nim Game
- java--API 让我头疼的题
- 1013. 数素数 (20)
- 全球最杰出的14位程序员