짝수 홀수 반복 횟수의 합
시간 제한2초메모리 제한512 MB
짝수는 2로 나누고 홀수는 1을 더해 1에 도달할 때까지 걸리는 단계 수를 f(X)라 할 때, [L, R] 구간 모든 X의 f(X) 합을 10^9+7로 나눈 나머지를 구한다. L과 R은 10^18까지 커질 수 있다.
문제
양의 정수 하나를 인자로 받아 정수를 돌려주는 함수 가 다음과 같이 정의되어 있다.
function f(X):
iterations := 0
while X is not 1:
if X is even:
divide X by 2
else:
add 1 to X
add 1 to iterations
return iterations
어떤 양의 정수 를 넣어도 이 함수는 반드시 끝난다는 사실을 증명할 수 있다. 구간 이 주어지면 다음 합을 구하라.
입력
첫째 줄에 두 정수 과 이 주어진다. ()
출력
를 소수 로 나눈 나머지를 출력한다.