Pagini recente » Cod sursa (job #1825205) | Cod sursa (job #416268) | Cod sursa (job #2647895) | Cod sursa (job #753289) | Cod sursa (job #2878474)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int v2[5000001],v3[5000001],v5[5000001];
int main()
{
int r,d,i,j,rez=0;
cin>>r>>d;
if(d%2==0)
{
for(i=2;i<=r;i*=2)
{
for(j=i;j<=r;j+=i)
v2[j]++;
}
for(i=1;i<=r;i++)
v2[i]+=v2[i-1];
}
if(d%3==0)
{
for(i=3;i<=r;i*=3)
{
for(j=i;j<=r;j+=i)
v3[j]++;
}
for(i=1;i<=r;i++)
v3[i]+=v3[i-1];
}
if(d%5==0)
{
for(i=5;i<=r;i*=5)
{
for(j=i;j<=r;j+=i)
v5[j]++;
}
for(i=5;i<=r;i++)
v5[i]+=v5[i-1];
}
for(i=1;i<r;i++)
{
if(d==4)
{
if(v2[r]-v2[i]-v2[r-i]>1)
rez++;
}
else
if((d%2!=0 || v2[r]-v2[i]-v2[r-i]) && (d%3!=0 || v3[r]-v3[i]-v3[r-i]) && (d%5!=0 || v5[r]-v5[i]-v5[r-i]))
rez++;
}
cout<<rez;
return 0;
}