Pagini recente » Cod sursa (job #631793) | Cod sursa (job #2205934) | Cod sursa (job #2696583) | Cod sursa (job #2658742) | Cod sursa (job #525765)
Cod sursa(job #525765)
#include<stdio.h>
long c,d,ciur[1000010],dns[1000000];
long long s;
void back(long poz,long prod,long n,long val)
{
if (poz>n || 1LL*c<1LL * prod*dns[poz])
{
if(val%2==0)
s=s+1LL * (d/prod)*(c/prod);
else
s=s-1LL * (d/prod)*(c/prod);
return;
}
back(poz+1,prod*dns[poz],n,val+1);
back(poz+1,prod,n,val);
}
int main()
{
long aux,i,j;
freopen("mins.in","r",stdin);
freopen("mins.out","w",stdout);
scanf("%ld%ld",&c,&d);
if (c>d)
{
aux=c;
c=d;
d=aux;
}
for( i=2;i<=d;++i)
if(!ciur[i])
{
for(j=i*i;j<=d;j+=i)
ciur[j]=1;
dns[++dns[0]]=i;
}
--c;
--d;
s=0;
back(1,1,dns[0],0);
printf("%lld",s);
return 0;
}