Cod sursa(job #164382)

Utilizator tm_raduToma Radu tm_radu Data 24 martie 2008 09:09:23
Problema Pascal Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>

long long int exps[3], expj[3];
int i, j, k;
int n, d;
int pr[3], nrp;
int exp[3];
int sol;

int main()
{
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    scanf("%d %d", &n, &d);
    if ( d == 2 ) nrp = 1, pr[1] = 2, exp[1] = 1;
	if ( d == 3 ) nrp = 1, pr[1] = 3, exp[1] = 1;
	if ( d == 4 ) nrp = 1, pr[1] = 2, exp[1] = 2;
	if ( d == 5 ) nrp = 1, pr[1] = 5, exp[1] = 1;
	if ( d == 6 ) nrp = 2, pr[1] = 2, pr[2] = 3, exp[1] = exp[2] = 1;
	
	
	for ( i = 0; i < n; i++ )
	{
		j = n-i;
		for ( k = 1; k <= nrp; k++ )
			while ( j % pr[k] == 0 ) exps[k]++, j /= pr[k];
		j = i+1;
		for ( k = 1; k <= nrp; k++ )
			while ( j % pr[k] == 0 ) expj[k]++, j /= pr[k];
		int ok = 1;
		for ( k = 1; k <= nrp; k++ )
			if ( exps[k] - expj[k] < exp[k] ) ok = 0;
		if ( ok ) sol++;
	}
	printf("%d\n", sol);
	return 0;
}