Post

[BOJ/백준] 20359번 : A simple task (Java)

📘 백준 20359번 : A simple task


문제 바로가기


🔤 문제 번역

문제

양의 정수 n이 주어졌을 때, n = o × 2^p 를 만족하는 홀수 정수 o와 정수 p를 구하시오.

다음과 같은 프로그램을 작성하시오.

표준 입력으로 양의 정수 n을 읽는다.

n = o × 2^p 를 만족하는 홀수 정수 o와 정수 p를 계산한다.

그 결과를 표준 출력으로 출력한다.

입력

입력의 첫 줄에는 하나의 정수 n이 주어진다.

(1 ≤ n ≤ 10^6)

출력

출력은 공백으로 구분된 두 정수 op를 출력한다.

단, n = o × 2^p를 만족해야 한다.


💡 문제 풀이


o가 홀수이므로 n을 2로 나누어 떨어지지 않을 때까지 2로 나누는 걸 반복하면서 횟수 카운트.

남은 no가 되고 2로 반복해서 나눈 횟수가 p가 됨.


✅ 코드 (Java)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// https://www.acmicpc.net/problem/20359
// 2로 나누어 떨어지지 않을 때까지 반복
public class B20359_A_simple_task {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int cnt = 0;
		while (n % 2 == 0) {
			n /= 2;
			cnt++;
		}
		System.out.println(n + " " + cnt);
		br.close();
	}
}


💾 제출 결과


보러 가기