试题 算法提高 欧拉函数
思路:
代码:
#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; }