Stay Hungry Stay Foolish

SWEA

[SWEA] 12004. 구구단 1 (Python/D3)

dev스카이 2024. 11. 4. 20:18

[문제 링크] 👇

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

N의 약수 중에서 1 이상 9 이하인 수가 있는지 확인한다.

 

따라서 반복문을 1부터 9까지만 돌게 한다.

  • 1부터 N을 나누는데, 나머지가 0이면 약수이다. 이 값을 a 라고 생각하자.
  • 그리고 N을 나눈 몫의 값이 b 라고 생각하면, b 의 값도 9 이하가 돼야 한다.
  • 따라서 and 연산자로 나머지는 0이면서 몫이 9 이하인 걸 찾고 결과에 "Yes" 를 저장한다.
  • 그리고 불필요한 추가 연산을 줄이기 위해 반복문을 종료한다.

Solution

T = int(input())  # 테스트 케이스 수
for test_case in range(1, T + 1):
    N = int(input())

    result = "No"
    for i in range(1, 10):  # 1 이상 9 이하
        if N % i == 0 and N // i < 10:  # i 가 N의 약수이면서 10 이하
            result = "Yes"
            break

    print(f"#{test_case} {result}")