본문 바로가기
Algorithm

[구현/수학] 백준 11966 2의 제곱인가? - 파이썬(Python)

by jangThang 2022. 6. 3.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    11966번: 2의 제곱인가?

    자연수 N이 주어졌을 때, 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오.

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     주어진 수가 2의 제곱인지 판별하는 문제입니다.

     간단한 문제지만 실수하기 쉽습니다. 2의 0제곱인 1도 포함되야 하며, 2의 배수 판별과 혼동하면 안됩니다. 2의 제곱이니, 일일이 2를 곱해가며 확인해야 합니다.

     

     

     

    3. 코드

    # 입력
    N = int(input())
    
    # 2의 제곱 판별
    num = 1
    while True:
        # 2의 제곱이면 1 출력
        if num == N:
            print(1)
            break
    
        # 2의 제곱이 아니면 0 출력
        elif num > N:
            print(0)
            break
        num *= 2

     주어진 수보다 2의 제곱이 커질 때까지 2를 곱합니다. 만약 N과 같아지는 때가 생긴다면, 주어진 수는 2의 제곱입니다.

     

    star가 되고나서 Tistory

    반응형

    댓글