Cod sursa(job #2195755)

Utilizator AndreiVisoiuAndrei Visoiu AndreiVisoiu Data 17 aprilie 2018 12:21:21
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <iostream>

using namespace std;

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

const int maxR = 50000000,
          primes = 24996465;
/*
int p[primes+1], k = 1;
bool b[maxR+1];*/
/*
void ciur(int n) {
    b[0] = b[1] = 1;
    for(int i = 4; i <= n; i += 2)
        b[i] = 1;
    for(int i = 3; i*i <= n; i += 2)
        if(!b[i])
            for(int j = i*i; j <= n; j += i)
                b[i] = 1;
    p[1] = 2;
    for(int i = 3; i <= n; i += 2)
        if(!b[i]) p[++k] = i;
}*/

int legendre(int n, int k) {
    int r = n/k, s = 0, exp = k;
    while(r != 0) {
        s += r;
        exp *= k;
        r = n/exp;
    }
    return s;
}

int main()
{
    int r, d, s = 0;
    //ciur(maxR);
    in >> r >> d;

    int ap = legendre(r, d);
    for(int j = 0; j < r; j++)
        if(ap - legendre(j, d) - legendre(r-j, d) > 0)
            s++;

    out << s;
    return 0;
}