Cod sursa(job #1978354)

Utilizator vladboss2323Ciorica Vlad vladboss2323 Data 7 mai 2017 15:48:46
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>


using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");

int fact(int x)
{
    int rez=1,i;
    for(i=1; i<=x; i++)
        rez=rez*i;
    return rez;
}
long long putere(long long n, int p)
{
    //returneaza puterea la care apare p in descompunerea lui n!
    long long nr=0;
    while (n >= p)
    {
        nr += n/p;
        n /= p;
    }
    return nr;
}
int main()
{
    int n,d,nr=0,i,x,y,z,rez;
    in>>n>>d;
    if(n%2==1)
    {
        for(i=2; i<=n/2+1; i++)
        {

            x=putere(n,d);
            y=putere(n-i,d);
            z=putere(i,d);
            //out<<x<<" "<<y<<" "<<z<<endl;
            rez=x-y-z;
            if(rez>0)
                nr++;
        }
        out<<nr*2;
    }
    else
    {
        for(i=2; i<=n/2+1; i++)
        {
            x=putere(n,d);
            y=putere(n-i,d);
            z=putere(i,d);
            //out<<x<<" "<<y<<" "<<z<<endl;
            rez=x-y-z;
            if(rez>0)
                nr++;
        }
        out<<nr*2-1;
    }
    return 0;
}