Cod sursa(job #761166)

Utilizator visanrVisan Radu visanr Data 25 iunie 2012 00:58:23
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <cstdlib>
using namespace std;


int aux, n, d, sol, a[6];

int main()
{
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    int i;
    scanf("%i %i", &n, &d);
    for(i = 1; i <= (n >> 1); i++)
    {
          aux = n - i + 1;
          while(!(aux % 2)) a[2] ++, aux /= 2;
          while(!(aux % 3)) a[3] ++, aux /= 3;
          while(!(aux % 5)) a[5] ++, aux /= 5;
          aux = i;
          while(!(aux % 2)) a[2] --, aux /= 2;
          while(!(aux % 3)) a[3] --, aux /= 3;
          while(!(aux % 5)) a[5] --, aux /= 5;
          if((d == 2 && a[2]) || (d == 3 && a[3]) || (d == 4 && a[2] > 1) || (d == 5 && a[5]) || (d == 6 && a[2] && a[3]))
          {
                sol += 2;
                if((i << 1) == n) sol --;
          }
    }
    printf("%i\n", sol);
    scanf("%i", &i);
    return 0;
}