되는대로 살자

[C언어 기출문제&풀이] 거듭제곱 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 거듭제곱

malu 2010. 11. 2. 17:10

프로그램 명: tf
제한시간: 1 초

양의 정수 n 을 입력으로 받아 n = o * 2^p 가 되는 홀수 o 와 정수 p 를 구하는 것이 문제이다.

예를 들어 24 를 입력으로 받으면 o = 3 , p = 3 이다.

입력

정수 n 이 입력으로 주어진다. ( 1 <= n <= 10^6 )

출력

한 줄에 o 와 p 를 출력한다.

입출력 예

입력

24

출력

3 3
출처: Central European Programming Contest
풀이 : 루프를 돌려 구하도록 한다. 
소스코드 
01#include <stdio.h>
02  
03int main()
04{
05    int n,i,count=0;
06    scanf("%d",&n);
07    for(i=1;n%2==0;i++)
08        n/=2;
09    printf("%d %d",n,i-1);
10}