Euler function to get the number of relatively prime to N between 1 - N.
Problem in AcWing
Pic always uploaded unsuccessfully,so we can see the Euler.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);
public static void main(String[] args) throws IOException {
String[] s = br.readLine().split(" ");
int n = Integer.parseInt(s[0]);
while (n-- > 0) {
s = br.readLine().split(" ");
int x = Integer.parseInt(s[0]);
int res = x;
for (int i = 2; i <= x / i; i++) {
if (x % i == 0) {
res = res / i * (i - 1);
while (x % i == 0) x /= i;
}
}
if (x != 1) res = res / x * (x - 1);
pw.println(res);
}
pw.flush();
br.close();
}
}