Zadanie : mat05-c
Zadanie

Liczby naturalne dodatnie, które nie mają żadnego wspólnego dzielnika oprócz jedynki nazywamy liczbami względnie pierwszymi, np. 9 i 20.

Funkcja φ (czyt. "fi") Eulera lub tocjent, to funkcja nosząca nazwisko Eulera przypisująca każdej liczbie naturalnej dodatniej n liczbę liczb względnie z nią pierwszych i mniejszych od n. Funkcja Eulera odgrywa dużą rolę w teorii liczb. Ma też istotne zastosowania w kryptografii w badaniach nad złożonością szyfrów.

Oto kilka własności tej funkcji:

1. Jeśli p jest liczba pierwszą, to: φ(p)=p-1
2. Jeśli m i n są względnie pierwsze, to: φ(m*n)=φ(m)*φ(n)
3. Jeśli p jest liczbą pierwszą i n=pk, to: φ(n)=pk-1*(p-1)

Algorytm obliczający wartość tej funkcji mógłby wyglądać następująco:

φ(p) - zwróć ilość liczb mniejszych i względnie pierwszych z p

1. Jeśli p jest liczba pierwszą, to zwróć p-1 i zakończ
2. Znajdź m - najmniejszy dzielnik liczby p
3. Sprawdź ile razy m dzieli p - niech będzie to liczba k, czyli
   mk dzieli p, zaś mk+1 już nie dzieli p
3. Oznacza to, że p=mk*n
4. Jeśli n=1, to zwróć mk-1*(m-1) i zakończ
5. Zwróć φ(mk)*φ(n)

Na przykład \varphi(12)=\varphi(2^2\cdot 3)=\varphi(2^2)\cdot \varphi(3)=2^1\cdot(2-1)\cdot(3-1)=4, czyli istnieją 4 liczby względnie pierwsze z liczbą 12 i są to 1, 5, 7, 11.

Napisz program, który dla danych liczb naturalnych wyznaczy wartość funkcji φ Eulera.

Wejście

Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą n z zakresu 1..1000.
W każdym z kolejnych n wierszy zapisano po jednej liczbie całkowitej z zakresu 2..109.

Wyjście

Wyjście zgodne z przykładem.

Przykład

Dla danych podanych na wejściu:

2
8
10

Poprawną odpowiedzią jest wyjście:

4
4

Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5

Opcje zadania:

Biblioteki         : iostream iomanip cmath 
Limit czasu        : 0.1 s
Limit pamięci      : 32 MB
Słowa niedozwolone :