Cod sursa(job #1984333)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 24 mai 2017 15:43:44
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;

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

int main()
{
    int n,d,i,nr=0,a=0,b=0;
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);
    scanf("%d%d", &n, &d);
    for(i=1;i<=n;i++){
        if (i%2==0)
            v2[i]=v2[i/2]+1;
        if (i%3==0)
            v3[i]=v3[i/3]+1;
        if (i%5==0)
            v5[i]=v5[i/5]+1;
    }
    if (d==2 || d==4)
        for (i=1;i<=n;i++) {
            a=a+v2[n-i+1]-v2[i];
            if (d==2 && a>0)
                nr++;
            if (d==4 && a>1)
                nr++;
        }
    if (d==3)
        for (i=1;i<=n;i++) {
            a=a+v3[n-i+1]-v3[i];
            if (a>0)
                nr++;
        }
    if (d==5)
        for (i=1;i<=n;i++) {
            a=a+v5[n-i+1]-v5[i];
            if (a>0)
                nr++;
        }
    if (d==6) {
        for (i=1;i<=n;i++) {
            a=a+v2[n-i+1]-v2[i];
            b=b+v3[n-i+1]-v3[i];
            if (a>0 && b>0)
                nr++;
        }
    }
    printf("%d", nr);
    return 0;
}