// Arup Guha
// 12/2/2020
// Function to calculate phi(n)

#include <stdio.h>

int phi(int n);

int main(void) {

    // Test 2 to 50...
    int i;
    for (i=2; i<=50; i++)
        printf("%d %d\n", i, phi(i));

    // and 300...
    printf("%d %d\n", 300, phi(300));
    return 0;
}
int phi(int n) {

    int res = n;
    int div = 2;

    // Keep going until square root of n.
    while (div*div <= n) {

        // Divide out all copies of div.
        int exp = 0;
        while (n%div == 0) {
            exp++;
            n /= div;
        }

        // This is part of phi, multiply by our fraction.
        if (exp > 0)
            res = res/div*(div-1);

        // Go to next possible divisor.
        div++;
    }

    // Take care of last prime.
    if (n > 1)
        res = res/n*(n-1);

    return res;
}
