Pagini recente » Cod sursa (job #1248827) | Istoria paginii utilizator/nicupresedinte | Cod sursa (job #1484247) | Cod sursa (job #1542233) | Cod sursa (job #1844666)
#include <cstdio>
using namespace std;
int v[5000001],div[2];
int main()
{
FILE *fin=fopen ("pascal.in","r");
FILE *fout=fopen ("pascal.out","w");
int r,d,sol,i,nr,st,ok,j;
fscanf (fin,"%d%d",&r,&d);
sol=0;
if (d==2 || d==3 || d==5)
div[0]=d;
else if (d==4){
div[0]=2;
st=1;
}
else {
div[0]=2;
div[1]=3;
}
ok=0;
for (i=1;i<=r;i++){
nr=i;
for (j=0;j<2 && div[j]!=0;j++){
while (nr%div[j]==0){
v[i]++;
nr/=div[j];
}
}
if (st && v[i]%2==1){
if (ok==1){
ok=0;
v[i]++;
}
else ok=1;
}
if (st)
v[i]/=2;
v[i]+=v[i-1];
}
for (i=0;i<r;i++){
if (v[r]-v[r-i]-v[i]>0)
sol++;
}
fprintf (fout,"%d",sol);
return 0;
}