Cod sursa(job #796117)

Utilizator dariusdariusMarian Darius dariusdarius Data 10 octombrie 2012 18:10:28
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#define NMAX 5*10*10*10*10*10*10+5
int pow_d_n_fact[NMAX];
int pow_d_n[NMAX];
int main()
{
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	int r,d,i,nr=0;
	scanf("%d%d",&r,&d);
	
	pow_d_n[1]=0;
	for(i=2;i<=r;i++)
		if(i%d==0)
			pow_d_n[i]=pow_d_n[i/d]+1;
		else
			pow_d_n[i]=0;
	
	pow_d_n_fact[1]=0; pow_d_n_fact[0]=0;
	for(i=2;i<=r;i++)
		pow_d_n_fact[i]=pow_d_n_fact[i-1]+pow_d_n[i];
	
	for(i=0;i<=r;i++)
		if(pow_d_n_fact[r]>pow_d_n_fact[r-i]+pow_d_n_fact[i])
			nr++;
	
	printf("%d\n",nr);
	return 0;
}