Pagini recente » Cod sursa (job #1537761) | Cod sursa (job #1719568) | Cod sursa (job #1888118) | Cod sursa (job #1323173) | Cod sursa (job #2178227)
#include <iostream>
#include <fstream>
#define MAX 5000010
using namespace std;
int r,d,da,ia,ans,sz;
int nrd[MAX][3],dv[3];
int main()
{
ifstream f ("pascal.in");
ofstream g ("pascal.out");
f>>r>>d;
if(d==2||d==3||d==5)sz=1,dv[1]=d;
else if(d==4)sz=1,dv[1]=2;
else sz=2,dv[1]=2,dv[2]=3;
for(int i=1;i<=r;i++){
ia=i;
for(int ddn=1;ddn<=sz;ddn++){
da=0;
while(ia%dv[ddn]==0)da++,ia/=dv[ddn];
nrd[i][ddn]=nrd[i-1][ddn]+da;
}
}
for(int j=0;j<=r;j++){
if(sz==1){
ia=nrd[r][1]-nrd[j][1]-nrd[r-j][1];
} else {
ia=min(nrd[r][1]-nrd[j][1]-nrd[r-j][1],
nrd[r][2]-nrd[j][2]-nrd[r-j][2]);
}
//cout<<ia<<'\n';
if(ia>=1)ans++;
}
g<<ans<<'\n';
f.close ();
g.close ();
return 0;
}