#include using namespace std; #define REP(i,n) for(int i=0;i ostream& operator<<(ostream& os,const vector& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; } typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef vector vi; typedef vector vvi; set prime; void getprime(ll n){ vector p(n+1,true); p[2]=true; for(ll i=2;i*i<=n;i++){ if(!p[i]) continue; for(ll j=2;i*j<=n;j++){ p[i*j]=false; } } for(ll i=2;i<=n;i++) if(p[i]) prime.insert(i); } int main(){ ll n,l; cin>>n>>l; ll dmax=l/(n-1); getprime(dmax); ll sum=0; for(int p:prime){ ll maxx = (n-1)*p; sum += l-maxx+1; } cout << sum << endl; }