Cod sursa(job #2650097)

Utilizator redstonegamer22Andrei Ion redstonegamer22 Data 17 septembrie 2020 15:11:35
Problema Pascal Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("pascal.in");
ofstream out("pascal.out");

long long gfact(long long fact, int base)
{
    long long nr_div = 0;
    while(fact)
    {
        nr_div += fact / base; fact /= base;
    }

    return nr_div;
}

long long precalc[5000005];

int main()
{
    long long r; int d; in >> r >> d;
    long long cnt = 0;
    int cutoff;

    if(d == 4) cutoff = 1;
    else cutoff = 0;

    if(d == 6) d = 3;
    if(d == 4) d = 2;

    //for(int i = 0; i <= r; i++)
    //    precalc[i] = gfact(i, d);

    for(long long divs = d; divs <= r; divs*=d)
    for(long long index = 1; index*divs <= r; index += 1)
        precalc[index*divs] += 1;

    for(long long index = 1; index <= r; index++)
        precalc[index] += precalc[index-1];

    for(long long j = 0; j < r; j++)
    {
        if(precalc[r] - precalc[r-j] - precalc[j] > cutoff)
            cnt ++;
    }

    out << cnt;
}