Cod sursa(job #634966)

Utilizator PatrikStepan Patrik Patrik Data 18 noiembrie 2011 00:40:45
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
	#include<stdio.h>
	FILE *f, *g;
	long long r , nr , nums , numd , rez , aux ;
	int d;
	
	void citire();
	void solve();
	void tipar();
	
	int main()
	{
		citire();
		solve();
		tipar();
		return 0;
	}
	
	void citire()
	{
		f=fopen("pascal.in" , "r");
		fscanf(f , "%lld%d" , &r , &d );
		fclose(f);
	}
	
	void solve()
	{
		for( int i = d ; i<= r ; i+=d )
		{
			aux = i;
			while(aux % d == 0)
			{
				nr ++;
				aux/=d;
			}
		}
		nums = nr;
		long long x = r+1;
		for(int j = 1 ;j<x/2;++j)
		{
			aux = r;
			while(aux % d==0){
				nums--;
				aux/=d;
			}
			r--;
			aux = j;
			while(aux%d==0)
			{
				numd++;
				aux/=d;
			}
			if(nr-nums-numd > 0)
				rez++;
		}
		if(x%2 == 0)
			rez = rez*2;
		else
			rez=2*rez+1;
	}
	
	void tipar()
	{
		g=fopen("pascal.out" , "w");
		fprintf(g,"%lld" , rez );
		fclose(g);
	}