Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cctype>
- #include <cstring>
- #include <cstdio>
- #include <cmath>
- #include <algorithm>
- #include <vector>
- #include <string>
- #include <iostream>
- #include <sstream>
- #include <map>
- #include <set>
- #include <queue>
- #include <stack>
- #include <fstream>
- #include <numeric>
- #include <iomanip>
- #include <bitset>
- #include <list>
- #include <stdexcept>
- #include <functional>
- #include <utility>
- #include <ctime>
- using namespace std;
- /*bool cmp ( int a , int b )
- {
- return (a>b);
- }
- int gcd ( int a , int b )
- {
- return b==0 ? a : gcd ( b , a%b );
- }
- long long a[300006];
- bool prime [10000000];
- void sieve ( )
- {
- prime[2]=true;
- for ( int i=4 ; i<=10000000 ; i+=2 )
- {
- prime [i]=false; prime[i-1]=true;
- }
- for ( int i=3 ; i<=3400 ; i+=2 )
- {
- if ( prime[i] )
- {
- for ( int j=i*i ; j<=10000000 ; j+=2*i )
- {
- prime[j]=false;
- }
- }
- }
- }
- bool p( long long x )
- {
- if ( x%2==0 ) { return 0; }
- for ( int i=3 ; i*i<=x ; i+=2 )
- {
- if ( x%i==0 ) { return 0; }
- }
- return 1;
- }*/
- int phi( int n )
- {
- double res = n;
- for ( int i=2 ; i*i<=n ; i++ )
- {
- if ( n%i==0 )
- {
- while ( n%i==0 ) { n/=i; }
- res *= ( 1.0 - ( 1.0/i ) );
- }
- }
- // if number n as a whole is prime number then the answer is n-1;
- if ( n>1 )
- {
- res *= ( 1.0 - ( 1.0/n ) );
- }
- return (int) res;
- }
- int main()
- {
- int n;
- cin>>n;
- cout<<phi( n )<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement