Facebook
From Lê Hải Đăng, 1 Year ago, written in C++.
This paste is a reply to COUNTNUM from Lê Hải Đăng - go back
Embed
Viewing differences between COUNTNUM and CLOPRIME
#include 
using namespace std;

long long a,b,x,y,z,dem[5];

t,n;
int x[1000011];

void sieve(int N) {
    for(int i=0;i<=N;++i)x[i]=1;
    x[0]=0;
    x[1]=0;
    for(int i=2;i*i<=N;++i)
        if(x[i]==1) for(int j=i*i;j<=N;j+=i)x[j]=0;
}
int main()
{
    freopen("COUNTNUM.freopen("CLOPRIME.inp","r",stdin);
    freopen("COUNTNUM.freopen("CLOPRIME.out","w",stdout);
    cin>>a>>b>>x>>y;

    z=(x*y)/__gcd(x,y);

    if(a%x==0) dem[1]=b/x-a/x+1;
    else dem[1]=b/x-a/x;
    if(a%y==0) dem[2]=b/y-a/y+1;
    else dem[2]=b/y-a/y;
    if(a%z==0) dem[3]=b/z-a/z+1;
    else dem[3]=b/z-a/z;
    cout<<(b-a+1)-(dem[1]+dem[2]-dem[3]);
sieve(1000010);
    cin>>t;
    while(t--){
        cin>>n;
        while(x[n]==0)n--;
        cout<     }
}