#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(I,A,B) for(int I = (A); I < (B); ++I) typedef long long ll; const ll MAX = 10000000; bool isPrime[MAX]; vector prime; void makePrime(){ for (ll i = 0; i < MAX; i++){ isPrime[i] = true; } for (ll i = 2; i < MAX; i++){ if(isPrime[i]){ prime.push_back(i); for (ll j = 2 * i; j < MAX; j += i) { isPrime[j] = false; } } } return; } int main(){ ll N, L; cin >> N >> L; // L / (N - 1) 以下の素数の個数 makePrime(); ll ans = 0; FOR(i, 0, prime.size()){ if(prime[i] * (N - 1) <= L) ans += (L - (prime[i] * (N - 1))) + 1; else break; } cout << ans << endl; return 0; }