728x90
백준 11689 GCD(n, k) = 1
문제
자연수 n이 주어졌을 때, GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 n (1 ≤ n ≤ 1012)이 주어진다.
출력
GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 출력한다.
제출
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long n = Long.parseLong(br.readLine());
long result = n;
for (long p = 2; p <= Math.sqrt(n); p++) {
if (n % p == 0) {
result = result - result / p;
while (n % p == 0) {
n /= p;
}
}
}
if (n > 1)
result = result - result / n;
System.out.println(result);
}
}
예제
1
5
10
45
99
결과
728x90
'JAVA > 백준' 카테고리의 다른 글
[Java] 백준 1850 최대공약수 - 유클리드 호제법(2) (0) | 2022.11.26 |
---|---|
[Java] 백준 1934 최소공배수 - 유클리드 호제법(1) (0) | 2022.11.24 |
[Java] 백준 1016 제곱ㄴㄴ수 - 소수 구하기(4) (0) | 2022.11.22 |
[Java] 백준 1747 소수&팰린드롬 - 소수 구하기(3) (0) | 2022.11.21 |
[Java] 백준 1456 거의 소수 - 소수 구하기(2) (0) | 2022.11.20 |
댓글