Pagini recente » Cod sursa (job #401895) | Cod sursa (job #846271) | Cod sursa (job #1777287) | Cod sursa (job #2326337) | Cod sursa (job #484026)
Cod sursa(job #484026)
#include <algorithm>
#include <vector>
#include <bitset>
using namespace std;
#define pb push_back
#define DIM 1000005
vector <int> prim;
bitset <DIM> viz;
long long nrt;
int c,d;
void init ()
{
int i,j;
scanf ("%d%d",&c,&d);
--c; --d;
if (c>d)
swap (c,d);
for (i=2; i<=d; ++i)
if (!viz[i])
{
prim.pb (i);
for (j=i+i; j<=d; j+=i)
viz[j]=1;
}
}
void back (int k,int prod,int pas)
{
if (k==(int)prim.size () || c<1LL*prod*prim[k])
{
if (pas&1)
nrt-=1LL*(d/prod)*(c/prod);
else
nrt+=1LL*(d/prod)*(c/prod);
}
else
{
back (k+1,prod*prim[k],pas^1);
back (k+1,prod,pas);
}
}
int main ()
{
freopen ("mins.in","r",stdin);
freopen ("mins.out","w",stdout);
init ();
back (0,1,0);
printf ("%lld",nrt);
return 0;
}