Cod sursa(job #508115)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 7 decembrie 2010 16:27:59
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

int I, J, D, P, Nr, F[3];
int ciur[] = {2, 3, 5};

int factori (int X, int D)
{
	int P = 1, N = 0;
	while (P <= X)
		N += X / (P *= D);
	return N;
}

int main ()
{
	freopen ("pascal.in", "r", stdin);
	freopen ("pascal.out", "w", stdout);
	
	scanf ("%d%d", &I, &D);
	
	int d;
	for (J = 1; J < I; ++J)
	{
		P = 1;
		for (d = 0; d < 3; ++d)
		{
			F[d] = factori (I, ciur[d]);
			F[d] -= factori (I - J, ciur[d]);
			F[d] -= factori (J, ciur[d]);
			if (F[d] >= 1) P *= ciur[d];
			if (F[d] >= 2) P *= ciur[d];
		}
		if (P % D == 0) Nr++;
	}
	
	printf ("%d", Nr);
	
	return 0;
}