Algorithm/백준

[BAEKJOON] 1402번: 아무래도이문제는A번난이도인것같다

NegotiationMan 2023. 9. 25. 08:14

문제

어떤 정수 A가 있으면 그 수를 A = a1 * a2 * a3 * a4 ... * an으로 했을 때 A' = a1 + a2 + a3 ... + an이 성립하면 "A는 A'으로 변할 수 있다"라고 한다. (ai는 정수) 만약 A'이 A"으로 변할 수 있으면 "A는 A"으로 변할 수 있다"라고 한다.

이때 A B 주어지면 A B 변할 있는지 판별하시오.

 

코드

for _ in range(int(input())):
    a, b = map(int, input().split())

    print("yes")

 

나의 생각

처음에 이 문제를 보고 소인수분해를 사용해서 풀려고 했지만 계속 시간 초과가 발생했다.

그래서 보니 입력 데이터가 너무 많았다.

그래서 구글링을 해보니 굉장히 간단한 문제였다!!!

A는 여러 정수 a1, a2, a3, ... , an의 곱으로 표현되고, A'은 그 정수들의 합으로 표현된다.

이제 이것을 예를 들어 설명해보자면

예를 들어, A = 6이라고 가정하자. A를 곱으로 표현하면:

A = 2 * 3

그리고 A'은 이 정수들의 합으로 표현된다:

A' = 2 + 3 = 5

이제 A를 A'로 변환하는 것을 생각해보자. 주어진 조건에 따라 A를 변환하기 위해 A를 A * 1로 표현할 수 있다.

A = 6

A = 6 * 1

그리고 A'을 계산한다:

A' = A + 1

A' = 6 + 1

A' = 7

즉, A를 A'로 변환한 것입니다. 이제 다른 숫자로도 A를 A'로 변환할 수 있다.

예를 들어, A = 7인 경우:

A = 7

A = 7 * 1 * 1

그리고 A'을 계산:

A' = A + 2

A' = 7 + 2

A' = 9

따라서 A = 7을 A' = 9로 변환할 수도 있다. 이런 식으로 A를 A'로 변환하는 것은 어떤 정수 A에 대해서도 가능하다!!!

, "A = A * 1 * 1"에서 A' 계속해서 A + 2, A + 3, ... 같이 증가시킬 있기 때문에 A A보다 모든 수로 변환 가능하다는 것을 의미한다.

그래서 그냥 무조건 yes를 출력한다 ....