피보나치 수와 최대공약수
시간 제한1초메모리 제한256 MB
n과 m이 최대 10의 18제곱일 때 n번째와 m번째 피보나치 수의 최대공약수를 1,000,000,007로 나눈 나머지를 구합니다.
문제
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 2번째부터는 바로 앞 두 피보나치 수의 합이다.
식으로 쓰면 이다.
까지 피보나치 수를 쓰면 다음과 같다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
과 이 주어지면 번째 피보나치 수와 번째 피보나치 수의 최대공약수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 과 이 공백으로 구분되어 주어진다. 과 은 보다 작거나 같은 자연수이다.
출력
첫째 줄에 번째 피보나치 수와 번째 피보나치 수의 최대공약수를 1,000,000,007로 나눈 나머지를 출력한다. 최대공약수는 실제 피보나치 수로 구한 뒤에 나머지를 취한다.