구름 알고리즘 위클리 [코딩테스트 준비하기]
문제 사용자의 입력을 받아 그 수가 2의 제곱이면 "Yes", 아니면 "No" 출력하기
코드
user_input=input()
number=int(user_input)
while number%2==0:
number//=2
if number==1:
print("Yes")
else:
print("No")
코드 설명
number=int(user_input)
input()으로 입력을 받으면 string 으로 받아오게 되므로 int로 변환해줘야함.
while number%2==0:
number//=2
짝수인 경우 계속 2로 나눠서 몫을 number에 다시 넣어줌.
if number==1:
print("Yes")
else:
print("No")
사용자에게 받아온 숫자 1 또는 while문을 거쳐서 몫을 받아온 number가 1인 경우 yes 출력
아닌 경우,No 출력
짝수를 계속 2로 나누다보면, 2의 제곱인 수의 최종 number=1이 나오는 것을 알 수 있음. 이를 이용하여 푼 문제.
출력예시