Cod sursa(job #185642)

Utilizator firewizardLucian Dobre firewizard Data 25 aprilie 2008 18:56:27
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define FOR(i,s,d) for(i=(s);i<=(d);++i)
long n,d,p[69],x,i,c; 
void ps()
{ 
     x=n-i;
     while(x%2==0){x/=2;p[2]++;}
     while(x%3==0){x/=3;p[3]++;} 
     while(x%5==0){x/=5;p[5]++;} 
     x=i+1; 
     while(x%2==0){x/=2;p[2]--;}
     while(x%3==0){x/=3;p[3]--;} 
     while(x%5==0){x/=5;p[5]--;} 
     if(d==2)c+=(p[2]>=1); 
     if(d==3)c+=(p[3]>=1); 
     if(d==4)c+=(p[2]>=2); 
     if(d==5)c+=(p[5]>=1); 
     if(d==6)c+=(p[2]>=1&&p[3]>= 1); 
} 
int main() 
{ 
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    scanf("%ld%ld",&n,&d);
    FOR (i,0,((n+1)/2-2))
        ps();
    c*=2; 
    if (n%2==0) 
       ps(); 
    printf("%ld\n",c); 
    return 0; 
}