Cod sursa(job #1338628)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 10 februarie 2015 10:25:00
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
using namespace std;
int pow2[5000001],pow3[5000001],pow5[5000001];
int main(){
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);
    int r,d,put2=0,put3=0,put5=0,nr=0,i;
    scanf("%d%d",&r,&d);
    for(i=1;i<=r;i++){
        if(i%2==0)
            pow2[i]=pow2[i/2]+1;
        if(i%3==0)
            pow3[i]=pow3[i/3]+1;
        if(i%5==0)
            pow5[i]=pow5[i/5]+1;
    }
    for(i=0;i<=r;i++){
        put2+=pow2[r-i+1]-pow2[i];
        put3+=pow3[r-i+1]-pow3[i];
        put5+=pow5[r-i+1]-pow5[i];
        if(d==2&&put2>0)
            nr++;
        if(d==3&&put3>0)
            nr++;
        if(d==4&&put2>1)
            nr++;
        if(d==5&&put5>0)
            nr++;
        if(d==6&&put2>0&&put3>0)
            nr++;
    }
    printf("%d",nr);
    return 0;
}