Cod sursa(job #5467)

Utilizator webspiderDumitru Bogdan webspider Data 12 ianuarie 2007 16:34:52
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>

using namespace std;

int put[5000001][3];
int k,d;
int i,j;
int x,nr;
int u;
int a[]={2,3,5};

int main()
{
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);

	scanf("%d %d\n", &k, &d);

	for ( i = 1; i <= k; i++ )
	{
		for ( j = 0; j <= 2; j++ )
		{
			u = a[j];
			put[i][u] = put[i-1][u];
			x=i;
			while ( x%u == 0 )
			{
				put[i][u] += 1;
				x=x/u;
			}
		}
	}
	for ( i = 1; i <= k; i++ )
	{
		if ( d == 2 ) 
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 0 )
				nr++;
		
		if ( d == 3 )
			if ( put[k][1] - ( put[k-i][1] + put[i][1] ) > 0 )
				nr++;

		if ( d == 4 )
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 1 )
				nr++;

		if ( d == 5 )
			if ( put[k][3] - ( put[k-i][3] + put[i][3] ) > 0 )
				nr++;
		if ( d == 6 )
			if ( put[k][0] - ( put[k-i][0] + put[i][0] ) > 0 && put[k][1] - ( put[k-i][1] + put[i][1] ) > 0 )
				nr++;
	}

	printf("%d\n", nr );

	fclose(stdout);
	fclose(stdin);

	return 0;
}