Tags
- BFS
- Dynamic Programming
- ๋ฐฑํธ๋ํน
- ์ํ
- LV2
- ๊ตฌํ
- stack
- queue
- Python
- BOJ
- dfs
- DP
- ๊ทธ๋ํ ํ์
- Java
- ๊น์ด ์ฐ์ ํ์
- ์ ์๋ก
- ์๋ฎฌ๋ ์ด์
- PGM
- greedy
- sort
- ์๋ฃ๊ตฌ์กฐ
- SpringBoot
- ์ ๋ ฌ
- ๊ต์ฌ
- Brute Force Algorithm
- ๋ฌธ์์ด
- Study
- ๊ทธ๋ํ ์ด๋ก
- ๋๋น ์ฐ์ ํ์
- CodingTest
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_11689 : GCD(n, k) = 1 ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- 1๋ถํฐ ์์ฐ์ n๊น์ง์ ๋ฒ์์์, ์ต๋๊ณต์ฝ์(GCD)๊ฐ 1์ธ ์์ฐ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
- ๋ค์ ๋งํ๋ฉด ์๋ก์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์๋ก์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ณต์์ผ๋ก ์ค์ผ๋ฌ์ ํผ ํจ์(Euler product formula; ์ค์ผ๋ฌ ๊ณฑ ๊ณต์)์ ์ฌ์ฉํ๋ค.
- n์ ์์ธ์๋ก P[i] = P[i] - P[i]/K (i๋ K์ ๋ฐฐ์) ์ฐ์ฐ์ ๋ฐ๋ณตํ๋ค.
- n์ด ์์์ด๊ฑฐ๋, n์ด ์ง์๊ฐ 1์ธ ์์ธ์๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ, ์ค์ผ๋ฌ ํผ ํจ์๋ฅผ 1ํ ๋ ์ ์ฉํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
long n = Long.parseLong(br.readLine());
long result = n;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
result -= result / i;
while (n % i == 0) {
n /= i;
}
}
}
if (n > 1)
result -= result / n;
bw.write(Long.toString(result));
bw.flush();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n์ ํ์ฌ ์์ธ์์ ๊ตฌ์ฑ์ ํ์ํ๊ณ , result๋ ์๋ก์์ ๊ฐ์๋ฅผ ํ์ํ๋ค.
- 2๋ถํฐ n์ ์ ๊ณฑ๊ทผ ๊น์ง ํ์ํ๋ฉด์ ์์ธ์์ผ ๋ ์ค์ผ๋ฌ ํผ ์ฐ์ฐ result = result - (result/์์ธ์) ์ผ๋ก result๋ฅผ ์
๋ฐ์ดํธํ๋ค.
- n์์ ํด๋น ์์ธ์๋ ๋๋๊ธฐ ์ฐ์ฐ์ผ๋ก ์ญ์ ํ๋ค. ( ์์ธ์๊ฐ 3์ผ ๋, 3^2 x 5 => 5)
- ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๊ณ n์ด 1๋ณด๋ค ํฌ๋ฉด, n์ด ๋ง์ง๋ง ์์ธ์๋ผ๋ ๋ป์ด๋ค.
- n์ด ์์๊ฑฐ๋, n์ด ์ง์๊ฐ 1์ธ ์์ธ์๋ฅผ ๊ฐ์ง ๋ ์ด๋ฏ๋ก ์ค์ผ๋ฌ ํผ ์ฐ์ฐ์ 1ํ ๋ ์ ์ฉํ๋ค.
๐ธ end ๐ธ
- ์ค์ผ๋ฌ ํผ ์ฐ์ฐ์ ๋ํด ๊ณต๋ถํ๊ณ ์์ ๋ฌธ์ ๋ก ํ์ด๋ณด์๋ค. ์ฒ์์ ์๋ผํ ์คํ
๋ค์ค์ ์ฒด์ ๋น์ทํ๊ฒ ๊ตฌํํ ์ ์๋ค๊ณ ๋ฐฐ์์ ๋ฐฐ์ด์ ๋ง๋ค์ด ๊ณ์ฐํ๋ค.
- p[n]๋ง ๊ตฌํ๋ฉด ๋๋๋ฐ ๋ถํ์ํ ๊ณ์ฐ์ด ๋ง์์ง๋๊ฐ ์ถ์๋๋ฐ, ์ ๋ ฅ์ด long์ผ๋ก ๋ฐ์์ผ ํด์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฌ๋ค.
- ์์๋ณด๋ ๋ฐฐ์ด์ ์ ์ธํ๋๊ฒ ์๋๋ผ, ์๋ก์ ๊ฒฐ๊ณผ๊ฐ result์ ์์ธ์ ๊ตฌ์ฑ n์ ๋ ๊ฐ์ง ๋ณ์๋ก ๊ณ์ฐํ๋ ๊ฒ์ด์๋ค.
- n์ด ๋ํ๋ด๋ ์์ธ์ ๊ตฌ์ฑ์ด๋ผ๋ ๋ง์ด ์ดํด๊ฐ ์ ์๋์๋๋ฐ, 2๋ถํฐ n์ ์ ๊ณฑ๊ทผ๊น์ง ์ฐจ๋ก๋ก ๋๋์ด ๋จ์ด์ง์๋ง์ ์ ์ธ์ํค๋๊น i๊ฐ ๊ทธ๋ฅ ์ธ์๊ฐ ์๋๋ผ, ์์ธ์๊ฐ ๋๋ค๋๊ฑธ ๊ฒจ์ฐ ์ดํดํ๋ค.
- ์ ์๋ก ๋ฌธ์ ๋ ์ฐธ ์ด๋ ต์ง๋ง ์๋ก์ด ๊ณ์ฐ ๋ฐฉ์์ ๋ฐฐ์ธ ์ ์๋ ๊ฐ์ง ๊ฒฝํ์ด์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1033 : ์นตํ ์ผ (0) | 2024.02.29 |
---|---|
BOJ_1850 : ์ต๋๊ณต์ฝ์ (0) | 2024.02.21 |
BOJ_1016 : ์ ๊ณฑ ใดใด ์ (0) | 2024.02.20 |
BOJ_1747 : ์์&ํฐ๋ฆฐ๋๋กฌ (0) | 2024.02.20 |
BOJ_1456 : ๊ฑฐ์ ์์ (0) | 2024.02.18 |