|
102. Coprimes time limit per test: 0.5 sec. For given integer N (1<=N<=104) find amount of positive numbers not greater than N that coprime with N. Let us call two positive integers (say, A and B, for example) coprime if (and only if) their greatest common divisor is 1. (i.e. A and B are coprime iff gcd(A,B) = 1). Input Input file contains integer N. Output Write answer in output file. Sample Input 9 Sample Output 6 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
int n;
int phi(int x){
int ans=x;
for(int i=2;i<(int)sqrt(x*1.0)+1;i++)
if((x%i==0)){
ans=ans/i*(i-1);
while((x%i==0)) x/=i;
}
if(x>1) ans=ans/x*(x-1);
return ans;
}
int main(){
scanf("%d",&n);
printf("%d\n",phi(n));
return 0;
}
|