数学知识-欧拉函数&快速幂

对于正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目,记作φ(n).

数学知识-欧拉函数&快速幂

 

 算法思路

既然求解每个数的欧拉函数,都需要知道他的质因子,而不需要个数

因此,我们只需求出他的质因子,然后根据公式:N*(p1-1)/p1*(p2-1)/p2......即可

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n; int main() { ll i,j; cin>>n; for(i=0;i<n;i++) { ll x; cin>>x; ll ans=x; for(j=2;j<=x/j;j++) { if(x%j==0) { ans=ans*(j-1)/j; while(x%j==0) { x/=j; } } } if(x!=1) ans=ans*(x-1)/x; cout<<ans<<endl; } return 0; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssddy.html