시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB305228.571%

문제

저항 R1, R2, R3 ,... Rn을 직렬로 연결 하면, (R1+R2+R3+...+Rn)이 되고, 병렬로 연결 하면, 1/((1/R1)+(1/R2)+(1/R3)+...+(1/Rn))이 된다.

두 정수 a와 b가 주어진다. 크기가 1과 2인 저항을 매우 많이 가지고 있을때, 저항을 몇 개를 연결해야 a/b가 되는지 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 a와 b가 주어진다. a와 b는 50,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 필요한 저항의 최소 개수를 출력한다. 만약 필요한 저항의 수가 16개보다 크다면 -1을 출력한다.

예제 입력 1

6 5

예제 출력 1

3

예제 입력 2

1 1

예제 출력 2

1

예제 입력 3

2 3

예제 출력 3

2

예제 입력 4

42 47

예제 출력 4

7

예제 입력 5

1 20

예제 출력 5

-1

예제 입력 6

756 874

예제 출력 6

10

힌트

예제 1의 경우 1과 2를 직렬 연결한 것을 2와 병렬 연결 하면 된다.

출처