Cod sursa(job #3154960)

Utilizator DumitrescuADumitrescuA DumitrescuA Data 6 octombrie 2023 22:44:03
Problema Pascal Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;

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

#define INF 100000000

int v2[5000001],v3[5000001],v5[5000001];

void prec(int n){
    int i,ci;
    for(i=1;i<=n;i++){
        v2[i]=v2[i-1];v3[i]=v3[i-1];v5[i]=v5[i-1];
        ///2
        ci=i;
        while(ci%2==0){
            v2[i]++;
            ci/=2;
        }
        ///3
        ci=i;
        while(ci%3==0){
            v3[i]++;
            ci/=3;
        }
        ///5
        ci=i;
        while(ci%5==0){
            v5[i]++;
            ci/=5;
        }
    }
}


int main()
{
    int n,d,cnt,rasp=0,i;
    cin>>n>>d;
    prec(n);
    for(i=0;i<=n;i++){
        if(d==2)
            if(v2[n]>v2[i]+v2[n-i])
                rasp++;
        else if(d==3)
            if(v3[n]>v3[i]+v3[n-i])
                rasp++;
        else if(d==5)
            if(v2[n]-v2[i]+v2[n-i]>1)
                rasp++;
        else
            if(v2[n]>v2[i]+v2[n-i] && v3[n]>v3[i]+v3[n-i])
                rasp++;
    }
    cout<<rasp;
    return 0;
}