Pagini recente » Cod sursa (job #3183608) | Cod sursa (job #731345) | Cod sursa (job #855359) | Cod sursa (job #120944) | Cod sursa (job #1832938)
#include <fstream>
#include <iostream>
using namespace std;
int prim[316260];
int setbit( int j );
int getbit( int j );
int main()
{
// ifstream fin("difprim.in");
// ofstream fout("difprim.out");
ifstream fin("ciur.in");
ofstream fout("ciur.out");
long a,b;
// cin >> a >> b;
fin>>a;
int i,j;
//cout<<(a<<6)<<" ";
for ( i=2; i<=b; i++ )
for ( j=i*i; j<=b; j=j+i ) {
setbit(j);
}
int n=0;
for ( i=2; i<=b; i++ ){
// if ( i%32==0 )
// cout<<endl<<endl<<i<<" "<<prim[i]<<endl<<endl;
//cout<<i<<" "<<getbit(i)%2<<endl;
if( getbit(i)%2==0 )
n++;
}
fout<<n;
//cout<<endl<<endl;
/*
long difmax=0;
int ma=0, mb;
int ca, cb;
if ( b%2==0 )
i=b-1;
else i=b;
while ( i>=a ) {
cout << i << " " << (prim[i/32]>>(i%32)%2) <<endl;
if( (prim[i/32]>>(i%32))%2==0 ) {
mb=ma;
ma=i;
if ( mb-ma >= difmax ) {
difmax=mb-ma;
cb=mb;
ca=ma;
}
}
i=i-2;
}
cout << ca << " " << cb;
*/
fin.close();
fout.close();
return 0;
}
int setbit( int j )
{
int index=1;
int x=j/32;
index=(index<<(j%32));
prim[x]|=index;
}
int getbit( int j )
{
int x=prim[j/32];
return x>>(j%32);
}