Cod sursa(job #164303)

Utilizator alzwdedVlad Mesco alzwded Data 23 martie 2008 21:10:58
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

#define i r
#define FORMULA (long) ((long long)(_fact(i,j)/fact(j))))

FILE *f,*g;
long r,d;
void citire();
void numara();

int main(){
    f=fopen("pascal.in","r");
    g=fopen("pascal.out","w");
    
    citire();
    numara();

    fclose(g);
    return 0;
}

long long _fact(long i, long j){
    long long ret=j;
    
    for(int k=j+1;k<=i;++k){
	ret*=k;
    }
    
    return ret;
}

long long fact(long k){
    long long ret=1;
    
    for(int i=2;i<=k;++i){
	ret*=i;
    }
    
    return ret;
}

void citire(){
    fscanf(f,"%ld%ld",&r,&d);
}

void numara(){
    long nr=0,j;
    
    for(j=1;j<r/2;++j){
        nr+=(( (long)( (long long) _fact(i,j)/fact(j)  ) %d)==0)*2;
    }
	
    if(r%2){
	nr+=(( (long)( (long long) _fact(i,j)/fact(j)  ) %d)==0)*2;
    }else{
	nr+=(( (long)( (long long) _fact(i,j)/fact(j)  ) %d)==0);
    }
    
    fprintf(g,"%ld",nr);
}