Cod sursa(job #2120663)

Utilizator patcasrarespatcas rares danut patcasrares Data 2 februarie 2018 19:05:43
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
#define DN 5000005
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int r,d,nr2,nr3,nr5,f,a[2][DN],nr;
int main()
{
    fin>>r>>d;
    for(int i=2;i<=r;i++)
    {
        f=i;
        for(int j=0;j<2;j++)
            a[j][i]=a[j][i-1];
        if(d==2||d==4)
            while(f%2==0)
            {
                a[0][i]++;
                f=f/2;
            }
        if(d==3)
            while(f%3==0)
            {
                a[0][i]++;
                f=f/3;
            }
        if(d==5)
            while(f%5==0)
            {
                a[0][i]++;
                f=f/5;
            }
        if(d==6)
        {
            while(f%2==0)
            {
                a[0][i]++;
                f=f/2;
            }
            while(f%3==0)
            {
                a[1][i]++;
                f=f/3;
            }
        }
    }
    for(int i=1;i<=r;i++)
    {
        if(d==2&&a[0][r]-a[0][i]-a[0][r-i])
            nr++;
        if(d==3&&a[0][r]-a[0][i]-a[0][r-i])
            nr++;
        if(d==4&&(a[0][r]-a[0][i]-a[0][r-i])/2)
            nr++;
        if(d==5&&a[0][r]-a[0][i]-a[0][r-i])
            nr++;
        if(d==6&&a[0][r]-a[0][i]-a[0][r-i]&&a[1][r]-a[1][i]-a[1][r-i])
            nr++;
    }
    fout<<nr;
}