Cod sursa(job #119279)

Utilizator doru100doru sarmasan doru100 Data 30 decembrie 2007 12:56:31
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream.h>
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int Putere (long int x , int a);
int main()
{
	long int R,i,nr=0;
	int D;
	fin >> R >> D;
	if(R % D== 0) nr = 2;
	for(i = 2;i <= R/2;i++)
	{
			if((D==2||D==3||D==5)&&(Putere(R , D)-((Putere((R-i),D)+Putere(i,D))) > 0))  nr+=2;
			else
				if(D==4&&(Putere(R , 2)-((Putere((R-i),2)+Putere(i,2)))>=2))nr+=2;
				else
					if(D==6&&(Putere(R , 2)-(Putere((R-i),2)+Putere(i,2)))>0&&(Putere (R , 3)-(Putere((R-i),3)+Putere(i,3))>0))nr+=2;
	}
	if(R%2==0) nr--;
	fout <<nr;
	return 0;


}
int Putere(long int x,int a)
{
	int b = 0;
	for(long int j = a;j <= x;j=j+a)
	{
		long int aux = j;
		while(aux % a==0)
		{
			aux = aux / a;
			b++;
		}
	}
	return b;
}