Pagini recente » Cod sursa (job #2763451) | Cod sursa (job #122133) | Cod sursa (job #2941999) | Cod sursa (job #727132) | Cod sursa (job #2910704)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <ctype.h>
#define MAX 20000000
using namespace std;
//ifstream f("in.in");
//ofstream g("out.out");
ifstream f("pascal.in");
ofstream g("pascal.out");
long long r,d,sol;
long long fact_n_prim_div_d(int n,int d){
long long div=d;
long long cnt=0;
while(div<=n){
cnt+=n/div;
div*=d;
}
return cnt;
}
long long fact_n_div_d(int n){
if(d==2||d==3||d==5){
return fact_n_prim_div_d(n,d);
}else if(d==4){
return fact_n_prim_div_d(n,2)/2;
}else if(d==6){
return min(fact_n_prim_div_d(n,2),fact_n_prim_div_d(n,3));
}
}
bool elem_n_div_d(long long n){
long long a = fact_n_div_d(r);
long long b = fact_n_div_d(r-n);
long long c = fact_n_div_d(n);
if(a>(b+c)){
return 1;
}
return 0;
}
int main(){
f>>r>>d;
for(int i=0;i<=r;i++){
sol+= elem_n_div_d(i);
}
g<<sol;
f.close();
g.close();
return 0;
}