#include using namespace std; #define FOR(i, a, b) for (int i = (int)(a); i < (int)(b); ++i) #define REP(i, n) FOR(i, 0, n) #define TRACE(x) cerr << #x << " = " << x << endl #define _ << " _ " << #define pb push_back #define x first #define y second #define LT < #define GT > typedef long long ll; typedef long double lf; ll g(ll n, ll k) { return n / k; } ll f(ll n){ ll k = sqrt(n); ll ret = 0; for (ll i=1; i <= k + 5; i++) { ret += max(0ll, g(n, i) - g(i * i - 1, i)); } ret *= 2; for(ll i = 1; i <= k + 5; i++) { if(i * i <= n) ret--; } return ret; } int broj_djelitelja(int n) { int ret = 0; FOR(i, 1, n + 1) if(n % i == 0) ret++; return ret; } int brut(int n) { int ret = 0; FOR(i, 1, n + 1) ret += broj_djelitelja(i); return ret; } void provjera() { FOR(i, 1, 10000) { printf("%d\n", i); if(brut(i) != f(i)) { printf("GRESKA %d: %d %lld", i, brut(i), f(i)); return; } } } int main(void) { ll a,b; scanf ("%lld%lld",&a,&b); printf ("%lld\n",f(b)-f(a-1)); return 0; }