Cod sursa(job #774346)

Utilizator andreimaresuMaresu Andrei andreimaresu Data 4 august 2012 13:38:20
Problema Pascal Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>
#include<math.h>
int fact(int r)
{
    if (r==1 || r==0) return 1;
    else return r*fact(r-1);
}
int main()
{
    FILE *f=fopen("pascal.in","r"),*g=fopen("pascal.out","w");
    long int r,nr=0,a,i,a2=0,a3=0,a5=0;
    int d;
    fscanf(f,"%ld %d",&r,&d);
    for(i=1;i<=r;i++)
    {
        a=r-i+1;
        while(a%2==0) {a2++;a/=2;}
        while(a%3==0) {a3++;a/=3;}
        while(a%5==0)  {a5++;a/=5;}
        a=i;
        while(a%2==0)   {a2--;a/=2;}
        while(a%3==0)   {a3--;a/=3;}
        while(a%5==0)   {a5--;a/=5;}
        if(d==2 && a2) nr++;
        else if(d==3 &&a3)  nr++;
              else if(d==4 && a2>1) nr++;
                    else if(d==5 && a5) nr++;
                        else if(d==6 &&a2 &&a3) nr++;
    }
    fprintf(g,"%ld",nr);
    fclose(f);
    fclose(g);
    return 0;
}