Cod sursa(job #1347599)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 19 februarie 2015 01:15:19
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#define nmax 5000005
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int n,d,sol;
int pow2,pow3,pow5;
int put2[nmax],put3[nmax],put5[nmax];


void test()
{
    if (d==2&&pow2>=1)
            sol++;
    if (d==3&&pow3>=1)
            sol++;
    if (d==4&&pow2>=2)
            sol++;
    if (d==5&&pow5>=1)
            sol++;
    if (d==6&&pow2>=1&&pow3>=1)
            sol++;
}

int main()
{
    //4999569
    int i,j;
    f>>n>>d;
    for (i=1;i<=n;i++) {
        if (i%2==0)
            put2[i]=put2[i/2]+1;
        if (i%3==0)
            put3[i]=put3[i/3]+1;
        if (i%5==0)
            put5[i]=put5[i/5]+1;
    }
    for (i=0;i<=n;i++) {
        pow2+=put2[n-i+1]-put2[i];
        pow3+=put3[n-i+1]-put3[i];
        pow5+=put5[n-i+1]-put5[i];
        test();
    }


    g<<sol;
    return 0;
}