Cod sursa(job #1206020)

Utilizator sddddgjdZloteanu Anastasia sddddgjd Data 8 iulie 2014 18:29:46
Problema Pascal Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<stdio.h>
int fact[6];
char cateFact[5000001][6];
int getfact(int nr,int p){
    int P=p,rez=0;
    while(nr/P>0){
        rez+=nr/P;
        P*=p;
    }
    return rez;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("pascal.in","r");
    fout=fopen("pascal.out","w");
    int r,d;
    fscanf(fin,"%d%d",&r,&d);
    int cont=0,nr=2,j,i;
    int sol=0,ok,x2=getfact(r,2),x3=getfact(r,3),x4=getfact(r,4),x5=getfact(r,5);
    for(i=0;i<=r/2;i++){
        ok=1;
        if(d==2)
            if(x2-getfact(r-i,2)-getfact(i,2)<1)
                ok=0;
        if(d==3)
            if(x3-getfact(r-i,3)-getfact(i,3)<1)
                ok=0;
        if(d==4)
            if(x2-getfact(r-i,2)-getfact(i,2)<2)
                ok=0;
        if(d==5)
            if(x5-getfact(r-i,5)-getfact(i,5)<1)
                ok=0;
        if(d==6)
            if(x2-getfact(r-i,2)-getfact(i,2)<1&&x3-getfact(r-i,3)-getfact(i,3)<1)
                ok=0;
        if(ok)
            sol++;
    }
    if(ok)
        sol--;
    fprintf(fout,"%d",sol*2+ok);
    return 0;
}