#P1274. 欧拉函数 φ(n)(试除法)

欧拉函数 φ(n)(试除法)

题目描述

输入一个正整数 nn,输出欧拉函数 φ(n)\varphi(n) 的值。φ(n)\varphi(n) 表示 1n1 \sim n 中与 nn 互质(最大公约数为 11)的整数的个数。

输入格式

一行,一个正整数 nn

输出格式

一行,一个整数,表示 φ(n)\varphi(n)

样例

6
2
12
4

说明/提示

由唯一分解定理 n=p1a1p2a2pkakn = p_1^{a_1} p_2^{a_2} \cdots p_k^{a_k},有

$$\varphi(n) = n\left(1-\frac1{p_1}\right)\left(1-\frac1{p_2}\right)\cdots\left(1-\frac1{p_k}\right)$$

只需用试除法把 nn 质因数分解,每遇到一个不同的质因子 pp,就令 φ(n)φ(n)/p×(p1)\varphi(n) \gets \varphi(n) / p \times (p-1)