#include <iostream>
#include <cmath>
using namespace std;
int kgcd(int a, int b){
if(a == 0)
return b;
if(b == 0)
return a;
if(!(a & 1) && !(b & 1))
return kgcd(a>>1, b>>1)<<1;
else if(!(b & 1))
return kgcd(a, b>>1);
else if(!(a & 1))
return kgcd(a>>1, b);
else
return kgcd(abs(a - b), min(a, b));
}
int main(){
int N;
cin>>N;
int cnt = 0;
for(int i = 1; i <= N; i++){
if(kgcd(i, N) == 1)
cnt++;
}
cout<<cnt<<endl;
return 0;
}
SGU 102 prime水题
最新推荐文章于 2016-08-11 16:48:57 发布