Pagini recente » Cod sursa (job #2048599) | Cod sursa (job #1349888) | Istoria paginii runda/preonii20051/clasament | Cod sursa (job #1859373) | Cod sursa (job #179507)
Cod sursa(job #179507)
#include<stdio.h>
#include<iostream.h>
#define RMAX 5000001
long r,aux,i,j,sol,d,fac1[RMAX],fac2[RMAX];
void putere_2(long &x)
{
long var=2;
while( i/var >0)
{
x += i/var;
var = (var<<1); }
}
void putere_f(long &x, long d)
{
long var=d;
while( i/var > 0 )
{
x += i/var;
var *= d; }
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%ld %ld",&r,&d);
if(d==4) for(i=1;i<=r;i++) putere_2(fac1[i]);
if(d==6) for(i=1;i<=r;i++) { putere_2(fac1[i]);
putere_f(fac2[i], 3); }
if(d==3 || d==5)
for(i=1;i<=r;i++) putere_f(fac1[i], d);
if(d==2) for(i=1;i<=r;i++) putere_2(fac1[i]);
for(i=0; i<=r; i++)
{
if(d==4 && fac1[r] - fac1[r-i] - fac1[i] > 1 ) {sol++; continue;}
if(d==6
&& (fac1[r] - fac1[r-i] - fac1[i] > 0)
&& (fac2[r] - fac2[r-i] - fac2[i] > 0) ) {sol++; continue;}
if( fac1[r] - fac1[r-i] - fac1[i] > 0 ) sol++;
}
printf("%ld\n",sol); return 0;
}