Pagini recente » Cod sursa (job #971068) | Cod sursa (job #2795992) | Cod sursa (job #1476961) | Cod sursa (job #3295775) | Cod sursa (job #2650829)
#include <fstream>
using namespace std;
unsigned int v2[5000005],v3[5000005],v5[5000005];
void calc2()
{
int m=2,cnt=0;
for(int i=1;i<=22;i++)
{
for(int j=m;j<=5000000;j+=m)
v2[j]++;
m=m*2;
}
for(int i=0;i<=500000;i++)
{
cnt+=v2[i];
v2[i]=cnt;
}
}
void calc3()
{
int m=3,cnt=0;
for(int i=1;i<=14;i++)
{
for(int j=m;j<=5000000;j+=m)
v3[j]++;
m=m*3;
}
for(int i=0;i<=500000;i++)
{
cnt+=v3[i];
v3[i]=cnt;
}
}
void calc5()
{
int m=5,cnt=0;
for(int i=1;i<=9;i++)
{
for(int j=m;j<=5000000;j+=m)
v5[j]++;
m=m*5;
}
for(int i=0;i<=500000;i++)
{
cnt+=v5[i];
v5[i]=cnt;
}
}
int main()
{
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int r,d,cnt=0;
cin >> r >> d;
if(d%2==0)
calc2();
if(d%3==0)
calc3();
if(d%5==0)
calc5();
for(int c=0;c<=r;c++)
{
if(d==2)
{
if(v2[r]-v2[c]-v2[r-c]>0)
cnt++;
}
if(d==3)
{
if(v3[r]-v3[c]-v3[r-c]>0)
cnt++;
}
if(d==4)
{
if(v2[r]-v2[c]-v2[r-c]>1)
cnt++;
}
if(d==5)
{
if(v5[r]-v5[c]-v5[r-c]>0)
cnt++;
}
if(d==6)
{
if(v2[r]-v2[c]-v2[r-c]>0 && v3[r]-v3[c]-v3[r-c]>0)
cnt++;
}
}
cout << cnt;
return 0;
}