Cod sursa(job #797880)

Utilizator tannous.marcTannous Marc tannous.marc Data 15 octombrie 2012 09:02:37
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<math.h>
long r,d,nr,i,v[6],n1,n2,n;
void asd()
{
    while(n1%2==0) 
		v[2]++,n1=n1/2;
    while(n1%3==0) 
		v[3]++,n1=n1/3;
    while(n1%5==0) 
		v[5]++,n1=n1/5;
    while(n2%2==0) 
		v[2]--,n2=n2/2;
    while(n2%3==0) 
		v[3]--,n2=n2/3;
    while(n2%5==0) 
		v[5]--,n2=n2/5;
}
int div()
{
    if(d==6) 
		return v[2]>0&&v[3]>0;
    if(d==4) 
		return v[2]>1;
    return v[d]>0;
}
int main()
{
    freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	scanf("%ld %ld",&n,&d);
	r=n;	
	for(i=1;i<=r/2;i++,n--)
	{
		n1=n;
		n2=i;
		asd();
		if(div())
			nr=nr+2;
	}
	if(div()&& r%2==0)
		nr--;
	printf("%ld",nr);
	return 0;
}