Cod sursa(job #2455747)

Utilizator cristina-criCristina cristina-cri Data 12 septembrie 2019 17:25:35
Problema Pascal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.24 kb
#include <cstdio>

using namespace std;

int n;

int prim(int x)
{
    if(x==2 || x==3 || x==5)
        return 1;
    return 0;
}


int suma(int n, int d)
{
    int s=0;
    while(n)
    {
        int r=s/d;
        s+=r;
        n=r;
    }
    return s;
}

int d;

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

    scanf("%d %d", &n, &d);

    int sus2=suma(n, 2);
    int sus3=suma(n, 3);
    int sus5=suma(n, 5);
    int nr=0;
    for(int i=1; i<=n/2; i++)
    {
        sus2-=(suma(i, 2)+suma(n-i, 2));
        sus3-=(suma(i, 3)+suma(n-i, 3));
        sus5-=(suma(i, 5)+suma(n-i, 5));
        if(d == 2)
        {
            if(sus2>0)
                nr+=2;
            continue;
        }
        if(d == 3)
        {
            if(sus3>0)
                nr+=2;
            continue;
        }
        if(d == 3)
        {
            if(sus3>0)
                nr+=2;
            continue;
        }
        if(d == 4)
        {
            if(sus2>=2)
                nr+=2;
            continue;
        }
        if(d == 5)
        {
            if(sus5>0)
                nr+=2;
            continue;
        }
        if(d == 6)
        {
            if(sus2>0 && sus3>0)
                nr+=2;
            continue;
        }
        sus2+=(suma(i, 2)+suma(n-i, 2));
        sus3+=(suma(i, 3)+suma(n-i, 3));
        sus5+=(suma(i, 5)+suma(n-i, 5));
    }
    if(n%2)
    {
        int i=(n+1)/2;
        sus2-=(suma(i, 2)+suma(n-i, 2));
        sus3-=(suma(i, 3)+suma(n-i, 3));
        sus5-=(suma(i, 5)+suma(n-i, 5));
        if(d == 2)
        {
            if(sus2>0)
                nr++;
        }
        else if(d == 3)
        {
            if(sus3>0)
                nr++;
        }
        else if(d == 3)
        {
            if(sus3>0)
                nr++;
        }
        else if(d == 4)
        {
            if(sus2>=2)
                nr++;
        }
        else if(d == 5)
        {
            if(sus5>0)
                nr++;
        }
        else if(d == 6)
        {
            if(sus2>0 && sus3>0)
                nr++;
        }
    }
    printf("%d", nr);
    return 0;
}