Cod sursa(job #1994680)

Utilizator Cudrici_CarinaCudrici Carina Cudrici_Carina Data 25 iunie 2017 17:11:01
Problema Pascal Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;
ifstream fi("pascal.in");
ofstream fo("pascal.out");
int v2[5000002],v3[5000002],v5[5000002],r,d,sol,i,nr,S;
int main()
{

fi>>r>>d;

        for (i=1; i<=r; i++)
        {
            nr=i;
            while (nr%2==0) {v2[i]++;nr/=2;}
            while (nr%3==0) {v3[i]++;nr/=3;}
            while (nr%5==0) {v5[i]++;nr/=5;}


            v2[i]+=v2[i-1];
            v3[i]+=v3[i-1];
            v5[i]+=v5[i-1];
        }

int rr=r/2;
for (i=0; i<=rr; i++)
    { sol=0;
        if (d==2 ) if (v2[r]-v2[r-i]-v2[i]>0) sol++;
        if (d==3 ) if (v3[r]-v3[r-i]-v3[i]>0) sol++;
        if (d==4 ) if (v2[r]-v2[r-i]-v2[i]>1) sol++;
        if (d==5 ) if (v5[r]-v5[r-i]-v5[i]>0) sol++;
        if (d==6 ) if( v2[r]-v2[r-i]-v2[i]>0 && v3[r]-v3[r-i]-v3[i]>0) sol++;
     if(sol)  if(r%2==0 and i==r/2) S++;
       else S+=2;
    }
fo<<S;
    return 0;
}