欧拉函数性质及模板

(以下p表示质数)

①当n = p^k时:  

②若m,n互质:

③n为质数时: 

④对任何两个互质的正整数a, m(m>=2)有

 即欧拉定理

当m是质数p时,此式则为:

 即费马小定理

⑤所有小于n并且与n互质数的和为:sum = n * φ(n)/2

⑥如果 i mod p=0,其中p为质数,则 φ(i∗p)=p∗φ(i),否则φ(i∗p)=(p−1)φ(i)

模板

bool vis[N]; //质数为0
int prime[N], phi[N];  //一个存质数,一个是欧拉函数
void get_prime(){
    int pos = 0;
    phi[1] = 1;
    vis[1] = 1;
    for(ll i = 2; i <= N; i++){
        if(!vis[i]){
            prime[++pos] = i;
            phi[i] = i-1;
        }
        for(ll j = 1; j <= pos && prime[j]*i <= N; j++){
            vis[i*prime[j]] = 1;
            if(i%prime[j] == 0){
                phi[i*prime[j]] = phi[i]*prime[j];
                break;
            }
            phi[i*prime[j]] = phi[i]*phi[prime[j]];
        }
    }
}

 

posted @ 2019-08-16 20:58  philo_zhou  阅读(262)  评论(0)    收藏  举报