Mai intai trebuie sa te autentifici.
Cod sursa(job #2910704)
| Utilizator | Data | 24 iunie 2022 14:41:33 | |
|---|---|---|---|
| Problema | Pascal | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | 3_iulie | Marime | 1.09 kb |
#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;
}
