欧拉函数:求解小于某个数的且与之互质的正整数
公式:enlur(x) = x(1-1/p1)(1-1/p2)......(1/pn) P为x的约数,其具体代码如下所示
#include <iostream>
#include<algorithm>
using namespace std;
const int maxn = 100+5;
int ma[maxn][maxn],mb[maxn][maxn];
int enlur(int n){
int ans = n;
for(int i = 2;i*i<=n;i++){
if((n%i==0))
ans = ans/i*(i-1);
while(n%i==0) n/=i;
}
if(n>1) ans = ans/n*(n-1);
return ans;
}
int main(){
int a;
cin>>a;
cout<<enlur(a)<<endl;
return 0;
}