Cod sursa(job #53924)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 23 aprilie 2007 18:51:12
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

long div(long n,long d){
     long s=0,p=d;
     while (p<=n){
           s+=n/p;
           p*=d;
     }
     return s;
     
}

int main(){
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);
    
    long n,i,r,d,d2,d3,d5,r2,r3,r5,nr=0;
    
    
    scanf("%ld %ld",&n,&d);
    d2=div(n,2);
    d3=div(n,3);
    d5=div(n,5);
    for (i=0;i<=n;i++){
        r2=div(i,2);
        r3=div(i,3);
        r5=div(i,5);
        r2+=div(n-i,2);
        r3+=div(n-i,3);
        r5+=div(n-i,5);
        
        switch (d){
               case 2:if (d2>r2)nr++;break;
               case 3:if (d3>r3)nr++;break;
               case 4:if (d2-r2>1)nr++;break;
               case 5:if (d5>r5)nr++;break;
               case 6:if (d2>r2&&d3>r3)nr++;break;
        }
    }
    printf ("%ld\n",nr);
    
    return 0;
}