Cod sursa(job #3154965)

Utilizator DumitrescuADumitrescuA DumitrescuA Data 6 octombrie 2023 22:47:14
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 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,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==4){
            if(v2[n]-(v2[i]+v2[n-i])>1)
                rasp++;
        }else if(d==5){
            if(v5[n]>v5[i]+v5[n-i])
                rasp++;
        }else{
            if(v2[n]>v2[i]+v2[n-i] && v3[n]>v3[i]+v3[n-i])
                rasp++;
        }
    }
    cout<<rasp;
    return 0;
}