Cod sursa(job #2911041)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 26 iunie 2022 15:24:04
Problema Pascal Scor 50
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.18 kb
#include <fstream>
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
int calc (int i,int val)
{
    int dd=val;
    int r=0;
    while (dd<=i)
    {
        r=r+i/dd;
        dd=dd*val;
    }
    return r;
}
int n,d,i,j,nr2,nr3,k,nr,d2[5000001],d3[5000001],d5[5000001];
int main ()
{
    fin>>n>>d;
    for (i=1; i<=n; i++)
    {
        d2[i]=calc(i,2);
        d3[i]=calc(i,3);
        d5[i]=calc(i,5);
    }
    for (j=1; j<n; j++)
    {
        if (d==2)
        {
            nr=d2[n]-d2[j]-d2[n-j];
            if (nr>=1)
                k++;
        }
        if (d==3)
        {
            nr=d3[n]-d3[j]-d3[n-j];
            if (nr>=1)
                k++;
        }
        if (d==4)
        {
            nr=d2[n]-d2[j]-d2[n-j];
            if (nr>=2)
                k++;
        }
        if (d==5)
        {
            nr=d5[n]-d5[j]-d5[n-j];
            if (nr>=1)
                k++;
        }
        if (d==6)
        {
            nr2=d2[n]-d2[j]-d2[n-j];
            nr3=d3[n]-d3[j]-d3[n-j];
            if (nr2>=1&&nr3>=1)
                k++;
        }
    }
    fout<<k;
    return 0;
}