Cod sursa(job #1563571)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 6 ianuarie 2016 11:50:26
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

const int Mx = 5000007;

int R,D,num,sol,a,b;
int p2[Mx],p3[Mx],p5[Mx];

int main()
{
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);

     scanf("%d %d",&R,&D);

     for (int i = 1;i <= R;i++)
     {
         if (i % 2 == 0)
            p2[i] = p2[i / 2] + 1;

         if (i % 3 == 0)
            p3[i] = p3[i / 3] + 1;

         if (i % 5 == 0)
            p5[i] = p5[i / 5] + 1;
     }

     if (D == 2)
     {
         for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],i++)
             sol += int(a > 0);
     }
   else
     if (D == 3)
     {
         for (int i = 1;i <= R;a += p3[R - i + 1] - p3[i],i++)
             sol += int(a > 0);
     }
   else
     if (D == 4)
     {
         for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],i++)
             sol += int(a > 1);
     }
   else
     if (D == 5)
     {
         for (int i = 1;i <= R;a += p5[R - i + 1] - p5[i],i++)
             sol += int(a > 0);
     }
   else
     if (D == 6)
     {
         for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],b += p3[R - i + 1] - p3[i],i++)
             sol += int(a > 0);
     }

     printf("%d\n",sol);

  return 0;
}