#include #include #include #include using namespace std; long long lb(long long N, long long i){ return ((N + i - 1) / i) * i; } long long up(long long M, long long i){ return (M / i) * i; } int main(){ long long N, M; cin >> N >> M; long long sum = 0; long long i; long long sqrt_l = sqrt(M); for (i = 1; i <= sqrt(M); i++) { long long L = lb(N, i); long long U = up(M, i); sum += (U - L) / i + 1; long long int newL = max(max(lb(i * i + 1, i), L), lb(sqrt(M), i)); if(newL > M ){ continue; } sum += 1 + (U - newL) / i; } if(sqrt_l >= N){ sum -= (sqrt_l - N) + 1; } if(N == 1){ sum ++; } cout << sum; //+ (M - N + 1) + (M - max(i, N) + 1) << endl; return 0; }