코테/백준
[백준/JAVA] 11689번: GCD(n, k) = 1
imname1am
2023. 4. 26. 11:08
반응형
🔺 문제
11689번: GCD(n, k) = 1
자연수 n이 주어졌을 때, GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import java.util.*;
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++) { // 2~N의 제곱근까지 탐색
// p가 소인수라면 결과값 업데이트
if(N % p == 0) {
result = result - result / p; // P[i] = P[i] - P[i] / K
while(N % p == 0) {
N /= p;
}
}
}
// N이 1보다 클 때, N은 마지막 소인수를 나타냄
if(N > 1) {
result = result - result / N;
}
System.out.println(result);
}
}
|
cs |
✅ 해결 아이디어
✔ 오일러 피 함수
- 소인수 : 자연수의 약수 中 소수인 수 (참고)
- 서로소 : 최대공약수가 1인 두 자연수 - 2와 3, 9와 10 등 (참고)
🔺 다른 풀이들
[BOJ] 백준 11689번 GCD(n,k) = 1 (Java)
#11689 GCD(n,k) = 1 난이도 : 골드 1 유형 : 정수론 / Euler's phi function(오일러 파이 함수) 11689번: GCD(n, k) = 1 자연수 n이 주어졌을 때, GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램
loosie.tistory.com
💬 느낀 점
끄앙 어려워...
그냥 이런게 있구나 하고만 넘어갈게요ㅠ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 6/20 |
반응형