欧拉函数&&欧拉定理
来源:互联网 发布:新浪网的域名 编辑:程序博客网 时间:2024/05/17 05:01
在数论中,对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目。
n的欧拉函数值记为: F(n)
那么,我们是怎样求欧拉函数的值呢?
方法是这样的:
其实求欧拉函数值还有一种方法:即利用递推法求欧拉函数值
算法原理:开始令i的欧拉函数值等于它本身,如果i为偶数,可以利用定理:
当n为奇数的时候 F[2*N]=F[N];
变为求奇数的。
若p是一个正整数满足,那么p是素数,在遍历过程中如果遇到欧拉函数值等于自身的情况,那么说明该数为素数。把这个数的欧拉函数值改变,同时也把能被该素因子整除的数改变。
#include <iostream>#include <cstdio>using namespace std;int phi(int n)//递推写法{ int rea=n,i; for(i=2;i*i<=n;i++){ if(n%i==0){ rea=rea-rea/i; while(n%i==0) n/=i; } } if(n>1) rea=rea-rea/n; return rea;}const int N = 100001;int p[N];void phi(int n)//利用定理写法p(2*n)=p(n){ for(int i=1;i<N;i++) p[i]=i; for(int i=2;i<N;i+=2) p[i]>>=1; for(int i=3;i<N;i+=2){ if(p[i]==i){ for( int j=i;j<N;j+=i) p[j]=p[j]-p[j]/i; } }}int main(){ int n; while(cin>>n){ cout<<phi(n)<<endl; } return 0;}
最后,我们来介绍一下欧拉定理:
0 0
- 欧拉函数与欧拉定理
- 欧拉函数与欧拉定理
- 欧拉函数&&欧拉定理
- 欧拉定理,欧拉函数
- 欧拉函数与欧拉定理
- 欧拉函数/欧拉定理
- 欧拉函数和欧拉定理
- 欧拉函数,欧拉定理模板
- POJ3696【欧拉函数+欧拉定理】
- 欧拉函数与欧拉定理
- 欧拉定理 和 欧拉函数
- 欧拉函数与欧拉定理
- 欧拉函数与欧拉定理
- 欧拉函数及定理
- 欧拉定理与函数
- 欧拉函数、欧拉定理、费马小定理
- 欧拉函数、费马定理、欧拉定理
- 原根,欧拉函数,欧拉定理,费马小定理
- zencart 批量管理商品出现发现不完整的商品,解决方法
- 贝特朗齐论
- Ruby中常见的创建String的方法
- <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。
- USACO Section 5.1 Musical Themes
- 欧拉函数&&欧拉定理
- annotation配置springMVC的方法了(事务不失效)
- autotool使用 - linux
- Android代码工具集——apk的下载和进度条的显示
- 【实用随记】js动态显示textarea所剩输入字节
- Oracle中rownum的使用
- oracle之系统预定义角色
- Java串口通信
- Snow.obj : error LNK2005: "unsigned char * __cdecl LoadBitmapFile(char *,struct tagBITMAPINFOHEADE