欧拉函数
- 1.题目
- 2.基本思想
- 3.代码实现
1.题目
给定 n 个正整数 ai,请你求出每个数的欧拉函数。
欧拉函数的定义
输入格式
第一行包含整数 n n n。
接下来 n n n 行,每行包含一个正整数 a i ai ai。
输出格式
输出共 n n n 行,每行输出一个正整数 a i ai ai 的欧拉函数。
数据范围
1 ≤ n ≤ 100 , 1≤n≤100, 1≤n≤100,
1 ≤ a i ≤ 2 × 1 0 9 1≤ai≤2×10^9 1≤ai≤2×109
输入样例:
3
3
6
8
输出样例:
2
2
4
2.基本思想
3.代码实现
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class _873欧拉函数 {private static int phi(int a) {int res = a;for (int i = 2; i <= a / i; i++)if (a % i == 0) {res = res / i * (i - 1);while (a % i == 0) a /= i;}if (a > 1) res = res / a * (a - 1);return res;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();while (n-- > 0) {int x = sc.nextInt();System.out.println(phi(x));}}
}