흥미로운 집합

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

요약
구간 [a,b]가 주어질 때, 곱이 완전제곱수가 되는 부분집합 중 값이 최소인 것을 찾아 그 제곱근을 출력하는 문제입니다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 비트 연산, 완전 탐색
정답자
아직 제출이 없습니다

문제

66, 1010, 1515는 각각 제곱수가 아니지만, 세 수의 곱 900=302900 = 30^2은 제곱수이다.

이처럼 원소들의 곱이 어떤 정수의 제곱이 되는, 양의 정수로 이루어진 집합을 흥미로운 집합이라고 부른다. 예를 들어 {6,10,15}\{6, 10, 15\}와 {25}\{25\}는 모두 흥미로운 집합이다.

흥미로운 집합에 속한 모든 원소의 곱을 그 집합의 값이라고 한다. 정의에 따라 이 값은 항상 완전제곱수이다.

집합 SS가 주어졌을 때, SS의 공집합이 아닌 부분집합 중에서 흥미로운 집합인 것들의 값 가운데 가장 작은 값을 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 두 정수 aa와 bb가 주어지며 1<a<b≤49001 < a < b \le 4900을 만족한다. 이 두 수는 집합 S={x∈N∣a≤x≤b}S = \{x \in \mathbb{N} \mid a \le x \le b\}를 나타낸다 (N\mathbb{N}은 자연수 전체의 집합이다). 입력의 끝까지 모든 테스트 케이스를 처리해야 한다.

출력

각 테스트 케이스마다, SS의 공집합이 아닌 부분집합 중 흥미로운 집합인 것들의 값 가운데 가장 작은 값을 k2k^2이라 할 때 kk를 한 줄에 출력한다. 흥미로운 집합인 부분집합이 하나도 없으면 none을 출력한다.

예제3

  1. 예제 1

    입력
    20 30
    101 110
    2337 2392
    
    예상 출력
    5
    none
    3580746020392020480
    
  2. 예제 2

    입력
    2 10
    8 20
    5 8
    
    예상 출력
    2
    3
    none
    
  3. 예제 3

    입력
    240 245
    
    예상 출력
    3780