Cod sursa(job #1663948)

Utilizator MAlexandruMatei Alexandru MAlexandru Data 26 martie 2016 11:32:53
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 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;
}