Pagini recente » Cod sursa (job #1793550) | Cod sursa (job #1602129) | Cod sursa (job #2460043) | Cod sursa (job #1234818) | Cod sursa (job #337124)
Cod sursa(job #337124)
#include<fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
const int maxr=5010010;
int i,j,r,d,k,n,power[maxr],l,power2[maxr],rez;
int main()
{
f>>r>>d;
l=r/2;
if(d%2==0)
{
for(i=2;i<=r;i<<=1)
for(j=i;j<=r;j+=i)
++power[j];
}
if(d%3==0)
if(d%2==0)
{
for(i=3;i<=r;i*=3)
for(j=i;j<=r;j+=i)
++power2[j];
}
else
{
for(i=3;i<=r;i*=3)
for(j=i;j<=r;j+=i)
++power[j];
}
if(d%5==0)
{
for(i=5;i<=r;i*=5)
for(j=i;j<=r;j+=i)
++power[j];
}
k=0;
if(d==2||d==5||d==3)
for(i=1;i<=l;++i)
{
k+=power[r-i+1];
k-=power[i];
if(k>0)
if(i+i!=r)
rez+=2;
else
++rez;
}
if(d==4)
for(i=1;i<=l;++i)
{
k+=power[r-i+1];
k-=power[i];
if(k>1)
if(i+i!=r)
rez+=2;
else
++rez;
}
if(d==6)
for(i=1;i<=l;++i)
{
k+=power[r-i+1];
k-=power[i];
n+=power2[r-i+1];
n-=power2[i];
if(n>1&&k>1)
if(i+i!=r)
rez+=2;
else
++rez;
}
g<<rez<<"\n";
f.close();
g.close();
return 0;
}