Pagini recente » Cod sursa (job #2154243) | Cod sursa (job #2310575) | Cod sursa (job #2315952) | Cod sursa (job #3148681) | Cod sursa (job #657763)
Cod sursa(job #657763)
#include<fstream>
#include<iostream>
#include<bitset>
using namespace std;
ifstream in("nasa.in");
ofstream out("nasa.out");
int a,b,nrr,nr[10000],nrp;
bitset<100000010> bb;
bitset<100000> c;
void ciur() {
int i,j;
for(i=2;i*i<=b;++i) {
if(!c[i]) {
nr[++nrp]=i*i;
for(j=i*i;((long long)j*j)<=b;j+=i) {
c[j]=true;
}
}
}
}
int main() {
int i,j,tm,pas;
unsigned int jj;
in >> a >> b;
ciur();
for(i=1;i<=nrp;++i) {
pas=1<<30; tm=0;
if(nr[i]<a)
for(tm=0;pas!=0;pas>>=1)
if((long long)(tm+pas)*nr[i]<a)
tm+=pas;
for(jj=(unsigned int)nr[i]*(tm+1);jj<=b;jj+=nr[i])
bb[jj-a]=true;
}
for(i=0;i<=b-a;++i)
if(!bb[i])
++nrr;
out << nrr << "\n";
return 0;
}