상근이의 아이디어

아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

상근이가 아들에게 다음 문제를 냈다.

1n1<n21041 \le n_1 < n_2 \le 10^4을 만족하는 두 정수 n1n_1n2n_2가 있다. 양의 정수 전체의 집합을 N\mathbb{N}^*라 하고, 함수 p:NNp:\mathbb{N}^* \rightarrow \mathbb{N}^*를 모든 nNn \in \mathbb{N}^*에 대해 p(n)=2np(n) = 2^n으로 정의한다. 이 함수로 집합 SS를 정의한다.

S(n1,n2)={p(p(n))+1n1nn2}S(n_1,n_2)=\left\{ p(p(n))+1 \mid n_1 \le n \le n_2 \right\}

SS의 원소로 이루어진 순서쌍의 집합도 정의한다.

T(n1,n2)={(m1,m2)m1,m2S(n1,n2), m1<m2}T(n_1,n_2)=\left\{ (m_1,m_2) \mid m_1,m_2 \in S(n_1,n_2),\ m_1 < m_2 \right\}

이제 다음 값을 정의한다.

R(n1,n2)=(m1,m2)T(n1,n2)gcd(m1,m2)R(n_1,n_2)=\sum_{(m_1,m_2) \in T(n_1,n_2)} \gcd(m_1,m_2)

gcd(m1,m2)\gcd(m_1,m_2)m1m_1m2m_2의 최대공약수다.

n1n_1n2n_2가 주어졌을 때 R(n1,n2)R(n_1,n_2)를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 n1n_1n2n_2가 공백으로 구분되어 주어진다. (1n1<n21041 \le n_1 < n_2 \le 10^4)

출력

첫째 줄에 R(n1,n2)R(n_1,n_2)의 값을 출력한다.