만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

보물 창고로 가는 문

면접 대비

시간 제한8초메모리 제한512 MB

요약
정수 두 개가 주어질 때마다 각 수의 핵심값(가장 큰 고유 소인수에서 나머지 고유 소인수의 합을 뺀 값)을 계산해 더 큰 쪽을 출력한다.
난이도

보통10점 중 4점

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

문제

지미는 미로의 마지막 층에 도착했다. 그곳에는 문이 두 개 있고, 하나는 보물 창고로 이어지며 다른 하나는 지옥으로 이어진다. 지옥의 문을 열면 게임이 끝나고 저장 데이터가 지워지므로, 틀린 문을 열어서는 안 된다.

두 문에는 각각 양의 정수가 하나 적혀 있고, 이 수가 유일한 단서다. 열쇠 번호가 더 큰 수가 적힌 문이 보물 창고로 이어진다. 양의 정수 nn의 열쇠 번호는 nn의 서로 다른 소인수 중 가장 큰 값에서 나머지 소인수의 합을 뺀 값이다. 같은 소인수로 여러 번 나누어지더라도 한 번만 센다.

예를 들어 두 문에 30과 20이 적혀 있다고 하자. 30의 소인수는 2, 3, 5이므로 열쇠 번호는 5−(2+3)=05 - (2 + 3) = 0이다. 20의 소인수는 2와 5이므로 열쇠 번호는 5−2=35 - 2 = 3이다. 따라서 지미는 20이 적힌 문을 열어야 한다.

두 문에 적힌 수를 읽어 어느 문을 열어야 하는지 판정하는 프로그램을 작성한다.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합은 공백으로 구분된 두 정수 aa와 bb가 적힌 한 줄이다 (2≤a,b≤1062 \le a, b \le 10^6). 두 수의 열쇠 번호는 항상 서로 다르다.

입력의 마지막 줄에는 0이 두 개 주어진다. 이 줄은 데이터 집합이 아니므로 처리하지 않는다.

출력

각 데이터 집합마다 한 줄씩 출력한다. aa가 적힌 문이 보물 창고로 이어지면 a를, 그렇지 않으면 b를 출력한다. 다른 공백이나 문자는 출력하지 않는다.

예제3

  1. 예제 1

    입력
    10 15
    30 20
    0 0
    
    예상 출력
    a
    b
    
  2. 예제 2

    입력
    2 3
    9 4
    1024 3
    0 0
    
    예상 출력
    b
    a
    b
    
  3. 예제 3

    입력
    12 20
    1000000 2
    6 35
    0 0
    
    예상 출력
    b
    a
    b