Cod sursa(job #1466886)

Utilizator mirupetPetcan Miruna mirupet Data 31 iulie 2015 13:14:24
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<cstdio>
using namespace std;
int v2[5000005], v3[5000005], v5[5000005];
int sol, N, R, put2, put3, put5, i;

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

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

        for (i = 1; i <= N; i++)
        {
            if (i % 2 == 0)
                v2[i] = v2[i / 2] + 1;
            if (i % 3 == 0)
                v3[i] = v3[i / 3] + 1;
            if (i % 5 == 0)
                v5[i] = v5[i / 5] + 1;
        }

        for (i = 1; i <= N; i++)
        {
            put2 += v2[N - i + 1] - v2[i];
            put3 += v3[N - i + 1] - v3[i];
            put5 += v5[N - i + 1] - v5[i];

            if (R == 2 && put2 > 0) sol++;
            else
                if (R == 3 && put3 > 0) sol++;
            else
                if (R == 5 && put5 > 0) sol++;
            else
                if (R == 4 && put2 > 1) sol++;
            else
                if (R == 6 && put2 > 0 && put3 > 0) sol++;
        }

        printf("%d", sol);
    }