#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; } void brute(long long int L, long long R){ long long sum = 0; for(int i = L; i <= R; ++i){ for(int j = 1; j <= i; ++j){ if(i % j == 0) sum++; } } cout << sum << endl; } 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); if(L <= i * i){ L = lb(i*i, i); } long long U = up(M, i); if(L > U){ continue; } sum += (U - L) / i + 1; // cout << "i: " << i << ' ' <<(U - L) / i + 1 << endl; long long int newL = max(lb(i * i + 1, i), L); if(newL > M ){ continue; } sum += 1 + (U - newL) / i ; // cout << "new i: " << i << ' ' <<(U - newL) / i + 1<< endl; } //if(sqrt_l >= N){ // sum -= (sqrt_l - N) + 1; //} //if(N == 1){ // sum ++; //} cout << sum; //+ (M - N + 1) + (M - max(i, N) + 1) << endl; // cout << endl; // brute(N, M); return 0; }