欧拉函数
来源:互联网 发布:意大利军事实力 知乎 编辑:程序博客网 时间:2024/06/05 19:35
欧拉函数:在数论中,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。
φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4
如何求对正整数n,1~n中与m互质的数的个数phi。
这就要用到容斥原理。
参考:http://blog.csdn.net/ydd97/article/details/48712679
另外:1~n中与m或者n互质的数之和=phi*n/2;
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;long long a[10000],b[30];int main(){ int n; while(scanf("%d",&n)&&n){ if(n<=3){ cout<<0<<endl; continue; } memset(b,0,sizeof(b)); int m=n,k,p,len1=0,len2=0; for(long long i=2;i<=sqrt(m);i++){ if(m%i==0){ b[len1++]=i; while(m%i==0){m/=i;} } } if(m>1)b[len1++]=m; long long sum=n; for(int i=0;i<len1;i++){ sum-=sum/b[i]; } cout<<sum<<endl; } return 0;}
求1~n与m互质数的个数代码;
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;long long a[10000],b[30];//long long ss(int n,int a){//求和// if(fabs(a)>n)return 0;// long long m=n/a;// long long b=m*a;// if(m==1||m==-1)return b;// long long num;// num=(((long long)fabs(a)+b)/2*m);// return num;////}int main(){ int n,m; while(scanf("%d%d",&n,&m)&&n){ if(n<=3){ cout<<0<<endl; continue; } memset(b,0,sizeof(b)); int k,p,len1=0,len2=0; for(long long i=2;i<=sqrt(m);i++){ if(m%i==0){ b[len1++]=i; while(m%i==0){m/=i;} } } if(m>1)b[len1++]=m; a[len2++]=-1; for(int i=0;i<len1;i++){ int l=len2; for(int j=0;j<l;j++){ a[len2++]=b[i]*a[j]*(-1); } } long long sum=n; for(int i=1;i<len2;i++){ //sum+=ss(n-1,a[i]); sum-=sum/a[i]; }//cout<<sum<<endl; sum%=1000000007; cout<<sum<<endl; } return 0;}
0 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- UE.Editor使用总结
- 单链表的插入和删除操作
- PLSQL显示乱码-无法进行中文条件查询解决
- numpy函数之np.maximum
- iOS 指定位取反
- 欧拉函数
- 调用service时出现 无法载合约 'LocalService.Service1Soap' 的端点组态区段,因为找到多个该合约的端点组态,请以名称偏好的端点组态区段
- (操作系统原理)死锁原理
- 泛型(一)->简单使用
- git命令提交代码
- 注册表键值
- [P1339]热浪
- 论前任的正确打开方式
- LMS算法