Cod sursa(job #1905886)

Utilizator tgm000Tudor Mocioi tgm000 Data 6 martie 2017 11:29:25
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<cstdio>
int put(int nr,int fact)
{
    int p=0;
    while(nr%fact==0)
    {
        p++;
        nr/=fact;
    }
    return p;
}
int main()
{
    int r,d,p2,p3,p5,i,nr,j;
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);
    scanf("%d%d",&r,&d);
    i=r;
    nr=0;
    p2=p3=p5=0;
    for(j=0; j<r/2-1+r%2; j++)
    {
        p2+=put(i-j,2);
        p3+=put(i-j,3);
        p5+=put(i-j,5);
        p2-=put(j+1,2);
        p3-=put(j+1,3);
        p5-=put(j+1,5);
        if(d==2&&p2>=1)
            nr++;
        else if(d==3&&p3>=1)
            nr++;
        else if(d==4&&p2>=2)
            nr++;
        else if(d==5&&p5>=1)
            nr++;
        else if(d==6&&p2>=1&&p3>=1)
            nr++;
    }
    nr*=2;
    if(r%2==0)
    {
        p2+=put(i-j,2);
        p3+=put(i-j,3);
        p5+=put(i-j,5);
        p2-=put(j+1,2);
        p3-=put(j+1,3);
        p5-=put(j+1,5);
        if(d==2&&p2>=1)
            nr++;
        else if(d==3&&p3>=1)
            nr++;
        else if(d==4&&p2>=2)
            nr++;
        else if(d==5&&p5>=1)
            nr++;
        else if(d==6&&p2>=1&&p3>=1)
            nr++;
    }
    printf("%d",nr);
    return 0;
}