オイラーのファイ関数
(math/euler_phi.hpp)
- View this file on GitHub
- Last update: 2020-09-13 16:40:58+09:00
- Include:
#include "math/euler_phi.hpp"
Required by
Verified with
Code
/**
* @brief オイラーのファイ関数
*/
long long euler_phi(long long n) {
long long ret = n;
for(long long i=2;i*i<=n;i++) {
if(n%i==0) {
ret-=ret/i;
while(n%i==0)n/=i;
}
}
if(n>1)ret-=ret/n;
return ret;
}
#line 1 "math/euler_phi.hpp"
/**
* @brief オイラーのファイ関数
*/
long long euler_phi(long long n) {
long long ret = n;
for(long long i=2;i*i<=n;i++) {
if(n%i==0) {
ret-=ret/i;
while(n%i==0)n/=i;
}
}
if(n>1)ret-=ret/n;
return ret;
}