Pagini recente » Cod sursa (job #2141381) | Cod sursa (job #2305380) | Cod sursa (job #1369563) | Cod sursa (job #1758629) | Cod sursa (job #2911002)
#include <fstream>
#define NMAX 5000001
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int calc(int i, int val)
{
int p=val;
int r=0;
while(p<=i)
{
r+=i/p;
p*=val;
}
return r;
}
int n, div, d[NMAX], t[NMAX], c[NMAX], sol;
int main()
{
fin>>n>>div;
///d[i]=la ce putere apare 2 in i!
///t[i]=la ce putere apare 3 in i!
///c[i]=la ce putere apare 5 in i!
for(int i=1; i<=n; i++)
{
d[i]=calc(i, 2);
t[i]=calc(i, 3);
c[i]=calc(i, 5);
}
for(int j=1; j<n; j++)
{
int aux=0, aux2=0, aux3=0;
if(div==2)
{
aux=d[n]-d[j]-d[n-j];
if(aux>=1)
sol++;
}
if(div==3)
{
aux=t[n]-t[j]-t[n-j];
if(aux>=1)
sol++;
}
if(div==5)
{
aux=c[n]-c[j]-c[n-j];
if(aux>=1)
sol++;
}
if(div==4)
{
aux=d[n]-d[n-j]-d[j];
if(aux>=1)
sol++;
}
if(div==6)
{
aux2=d[n]-d[j]-d[n-j];
aux3=t[n]-t[j]-t[n-j];
if(aux2>=1 && aux3>=1)
sol++;
}
}
fout<<sol;
return 0;
}