#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define nmax 1000007
#define mmax 1007
#define pll pair <long long, long long>
const long long mod = 1e9 + 7;
const long long base = 41;
const long long oo = 1e17;
long long f[nmax];
long long d[nmax];
long long a, b;
long long C[mmax][mmax];
void sang()
{
f[0] = f[1] = 0;
for(int i = 2; i <= nmax; i++)
{
f[i] = 1;
}
for(int i = 2; i <= sqrt(nmax); i++)
{
if(f[i])
{
for(int j = i * i; j <= nmax; j+= i)
{
f[j] = false;
}
}
}
}
void check(long long n)
{
long long x = n;
for(int i = 2; i <= sqrt(x); i++)
{
while(n % i == 0 and f[i])
{
n /= i;
d[i]++;
}
while(n % (x / i) == 0 and f[x / i])
{
n /= (x / i);
d[(x / i)]++;
}
}
if(f[n]) d[n]++;
}
signed main()
{
cin.tie(0) -> sync_with_stdio(0);
if(fopen("lcm.inp", "r"))
{
freopen("lcm.inp", "r", stdin);
freopen("lcm.out", "w", stdout);
}
sang();
cin >> a >> b;
for(int i = a; i <= b; i++)
{
check(i);
}
long long tong = 0;
for(int i = 1; i < nmax; i++)
{
if(d[i] != 0) tong += d[i];
}
long long mer = 1;
for(int i = 1; i < nmax; i++)
{
mer *= (2 * d[i] + 1);
}
cout << mer;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbm1heCAxMDAwMDA3CiNkZWZpbmUgbW1heCAxMDA3CiNkZWZpbmUgcGxsIHBhaXIgPGxvbmcgbG9uZywgbG9uZyBsb25nPgpjb25zdCBsb25nIGxvbmcgbW9kID0gMWU5ICsgNzsKY29uc3QgbG9uZyBsb25nIGJhc2UgPSA0MTsKY29uc3QgbG9uZyBsb25nIG9vID0gMWUxNzsKbG9uZyBsb25nIGZbbm1heF07CmxvbmcgbG9uZyBkW25tYXhdOwpsb25nIGxvbmcgYSwgYjsKbG9uZyBsb25nIENbbW1heF1bbW1heF07CnZvaWQgc2FuZygpCnsKICAgIGZbMF0gPSBmWzFdID0gMDsKICAgIGZvcihpbnQgaSA9IDI7IGkgPD0gbm1heDsgaSsrKQogICAgewogICAgICAgIGZbaV0gPSAxOwogICAgfQogICAgZm9yKGludCBpID0gMjsgaSA8PSBzcXJ0KG5tYXgpOyBpKyspCiAgICB7CiAgICAgICAgaWYoZltpXSkKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IGkgKiBpOyBqIDw9IG5tYXg7IGorPSBpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmW2pdID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0Kdm9pZCBjaGVjayhsb25nIGxvbmcgbikKewogICAgbG9uZyBsb25nIHggPSBuOwogICAgZm9yKGludCBpID0gMjsgaSA8PSBzcXJ0KHgpOyBpKyspCiAgICB7CiAgICAgICAgd2hpbGUobiAlIGkgPT0gMCBhbmQgZltpXSkKICAgICAgICB7CiAgICAgICAgICAgIG4gLz0gaTsKICAgICAgICAgICAgZFtpXSsrOwogICAgICAgIH0KICAgICAgICB3aGlsZShuICUgKHggLyBpKSA9PSAwIGFuZCBmW3ggLyBpXSkKICAgICAgICB7CiAgICAgICAgICAgIG4gLz0gKHggLyBpKTsKICAgICAgICAgICAgZFsoeCAvIGkpXSsrOwogICAgICAgIH0KICAgIH0KICAgIGlmKGZbbl0pIGRbbl0rKzsKfQpzaWduZWQgbWFpbigpCnsKICAgIGNpbi50aWUoMCkgLT4gc3luY193aXRoX3N0ZGlvKDApOwogICAgaWYoZm9wZW4oImxjbS5pbnAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oImxjbS5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJsY20ub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgc2FuZygpOwogICAgY2luID4+IGEgPj4gYjsKICAgIGZvcihpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKQogICAgewogICAgICAgIGNoZWNrKGkpOwogICAgfQogICAgbG9uZyBsb25nIHRvbmcgPSAwOwogICAgZm9yKGludCBpID0gMTsgaSA8IG5tYXg7IGkrKykKICAgIHsKICAgICAgICBpZihkW2ldICE9IDApIHRvbmcgKz0gZFtpXTsKICAgIH0KICAgIGxvbmcgbG9uZyBtZXIgPSAxOwogICAgZm9yKGludCBpID0gMTsgaSA8IG5tYXg7IGkrKykKICAgIHsKICAgICAgICBtZXIgKj0gKDIgKiBkW2ldICsgMSk7CiAgICB9CiAgICBjb3V0IDw8IG1lcjsKfQo=