유진수

면접 대비

시간 제한2초메모리 제한128 MB

요약
약 21억 이하의 정수가 주어질 때 자릿수를 좌우로 나눠 양쪽 숫자의 곱이 같아지는 분할이 있는지 확인합니다.
난이도

쉬움10점 중 2점

유형
문자열, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

어떤 자연수를 십진수로 쓴 뒤, 그 자릿수를 한 곳에서 나누었을 때 앞부분 자릿수의 곱과 뒷부분 자릿수의 곱이 같게 만들 수 있으면 그 수를 유진수라고 한다.

예를 들어 1221은 12와 21로 나누면 1 * 2 = 2 * 1이므로 유진수이다. 1236도 123과 6으로 나누면 1 * 2 * 3 = 6이므로 유진수이다. 하지만 1234는 유진수가 아니다.

나눌 때는 원래 수의 자릿수 순서를 유지해야 하며, 양쪽 부분은 모두 한 자리 이상이어야 한다. 예를 들어 12345는 1-2345, 12-345, 123-45, 1234-5 네 가지 방법으로만 나눌 수 있다.

자연수 N이 주어질 때, N이 유진수인지 판별하라.

입력

첫째 줄에 자연수 N이 주어진다. N은 2,147,483,647 이하이다.

출력

N이 유진수이면 YES, 아니면 NO를 출력한다.

예제5

  1. 예제 1

    입력
    1236
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    1
    
    예상 출력
    NO
    
  3. 예제 3

    입력
    1221
    
    예상 출력
    YES
    
  4. 예제 4

    입력
    4729382
    
    예상 출력
    NO
    
  5. 예제 5

    입력
    42393338
    
    예상 출력
    YES