试题 算法提高 欧拉函数

 

 思路:

 

 

代码:

#include<iostream>
#include<stdio.h>
using namespace std;
typedef long long ll;
int main(){
    ll n;
    cin>>n;
    ll res=n;
    for(ll i=2;i<=n/i;i++){
        if(n%i==0){
            res = res/i*(i-1);
        }
        while(n%i==0)
            n = n/i;
    }
    if(n>1){
        res = res/n*(n-1);
    }
    cout<<res<<endl;
    
    return 0;
}

 

posted @ 2020-10-04 13:33  sqsq  阅读(164)  评论(0编辑  收藏  举报