Pagini recente » Cod sursa (job #2325061) | Cod sursa (job #2335973) | Cod sursa (job #2920974) | Cod sursa (job #2108423) | Cod sursa (job #2910890)
#include <iostream>
#include <fstream>
#define MAX 5000002
using namespace std;
int r,n,d[MAX],t[MAX],c[MAX];
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int main()
{
/// legendre merge greu rau
fin >> r >> n;
for(int i = 2; i <= r; i++){
if(i%2 == 0){
d[i] = d[i / 2] + 1;
}
if(i%3 == 0){
t[i] = t[i / 3] + 1;
}
if(i%5 == 0){
c[i] = c[i / 5] + 1;
}
}
for(int i = 2; i <= r; i++) {
d[i] += d[i - 1];
t[i] += t[i - 1];
c[i] += c[i - 1];
}
int ans = 0;
for(int i = 0; i <= r; i++){
/// i!/((i-j)!*j!)
int doi = d[r]-d[r-i]-d[i];
int trei = t[r]-t[r-i]-t[i];
int cinci = c[r]-c[r-i]-c[i];
if(n == 2){
if(doi >= 1){ ans++; }
}else if(n == 3){
if(trei >= 1){ ans++; }
}else if(n == 4){
if(doi >= 2){ ans++; }
}else if(n == 5){
if(cinci >= 2){ ans++; }
}else if(n == 6){
if(doi >= 1 && trei >= 1){ ans++; }
}
}
fout << ans;
return 0;
}