Cod sursa(job #2203255)

Utilizator Lazar_LaurentiuLazar Laurentiu Lazar_Laurentiu Data 11 mai 2018 18:20:25
Problema Pascal Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#define MAX 5000010

using namespace std;
typedef long long ll;

int r,d,ans,fa,fa2;
int e2[MAX],e3[MAX],e5[MAX];

int main()
{
    ifstream f ("pascal.in");
    ofstream g ("pascal.out");
    f>>r>>d;
    if(d==5)
      for(int i=1;i<=r;i++){
        for(int j=5;i%j==0;j*=5,e5[i]++);
        e5[i]+=e5[i-1];
      }
    if(d==3||d==6)
      for(int i=1;i<=r;i++){
        for(int j=3;i%j==0;j*=3,e3[i]++);
        e3[i]+=e3[i-1];
      }
    if(d==2||d==4||d==6)
      for(int i=1;i<=r;i++){
        for(int j=2;i%j==0;j*=2,e2[i]++);
        e2[i]+=e2[i-1];
      }
    for(int i=0;i<=r;i++)
      if(d==2){
        fa=e2[r]-e2[r-i]-e2[i];
        if(fa>=1)ans++;
      } else if(d==3){
        fa=e3[r]-e3[r-i]-e3[i];
        if(fa>=1)ans++;
      } else if(d==4){
        fa=e2[r]-e2[r-i]-e2[i];
        if(fa>=2)ans++;
      } else if(d==5){
        fa=e5[r]-e5[r-i]-e5[i];
        if(fa>=1)ans++;
      } else {
        fa=e2[r]-e2[r-i]-e2[i];
        fa2=e3[r]-e3[r-i]-e3[i];
        if(fa>=1&&fa2>=1)ans++;
      }
    g<<ans;
    f.close ();
    g.close ();
    return 0;
}