프로베니우스 문제
시간 제한1초메모리 제한128 MB
주어진 네 수의 음이 아닌 정수 결합으로 나타낼 수 없는 1,000,000 이하의 정수를 세고 그중 가장 큰 수를 구합니다.
문제
프로베니우스 문제는 독일 수학자 G. 프로베니우스(1849-1917)의 이름을 딴 오래된 수학 문제다.
1보다 큰 정수 의 최대공약수가 1이라고 하자. 이때 인 정수 계수로 꼴로 나타낼 수 없는 0 이상의 정수는 유한개뿐이라는 사실이 알려져 있다. 그중 가장 큰 수를 의 프로베니우스 수라 부르고 으로 쓴다. 즉 은 의 음이 아닌 정수 계수 선형결합으로 나타낼 수 없는 가장 큰 0 이상의 정수다.
이면 를 주는 간단한 공식이 있다. 그러나 부터는 훨씬 복잡해진다. 일 때는 이 특별한 값일 때만 공식이 알려져 있고, 에 대해서는 공식이 전혀 알려져 있지 않다.
여기서는 인 경우를 다룬다. 이고 인 네 정수 가 주어질 때 다음 두 가지를 구한다.
- 1,000,000 이하의 0 이상 정수 가운데 의 음이 아닌 정수 계수 선형결합으로 나타낼 수 없는 수는 몇 개인가?
- 의 프로베니우스 수가 1,000,000 이하인가? 이하라면 그 값은 얼마인가?
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.
- 한 줄에 네 정수 가 공백 하나로 구분되어 주어진다. (, )
출력
각 테스트 케이스마다 두 줄을 출력한다.
- 첫째 줄에는 0 이상 1,000,000 이하(양 끝 포함)인 정수 가운데 음이 아닌 정수 로 와 같이 나타낼 수 없는 수의 개수를 출력한다.
- 둘째 줄에는 프로베니우스 수가 1,000,000 이하이면 그 값을, 1,000,000보다 크면 -1을 출력한다.