POJ 2407
裸 的求欧拉函数
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; int main(){ int n; while(scanf("%d",&n),n){ int res=n; int L=(int)sqrt(n*1.0); // cout<<L<<endl; for(int i=2;i<=L;i++){ if(n%i==0){ // cout<<i<<endl; res=res-res/i; while(n%i==0) n/=i; // cout<<n<<endl; } } if(n>1) res=res-res/n; printf("%d\n",res); } return 0; }