Pagini recente » Cod sursa (job #825583) | Cod sursa (job #311644) | Cod sursa (job #2557287) | Cod sursa (job #3167606)
#include <fstream>
using namespace std;
/**
int exp(int nr,int a){
int cnt=0;
while(nr%a==0){
cnt++;
nr/=a;
}
return cnt;
}**/
int exponent_2[5000005];
int exponent_3[5000005];
int exponent_5[5000005];
int main(){///C(n,k)=n!/k!/(n-k)!
///C(n,k+1)=n!/(k+1)!/(n-k-1)!
///C(n,k+1)=C(n,k)*(n-k)*k
ifstream cin("pascal.in");
ofstream cout("pascal.out");
for(int p=2;p<5000005;p*=2){
for(int i=p;i<5000005;i+=p){
exponent_2[i]++;
}
}
for(int p=3;p<5000005;p*=3){
for(int i=p;i<5000005;i+=p){
exponent_3[i]++;
}
}
for(int p=5;p<5000005;p*=5){
for(int i=p;i<5000005;i+=p){
exponent_5[i]++;
}
}
/**
for(int i=1;i<=100;i++){
cout<<i<<" "<<exponent_2[i]<<" "<<exponent_3[i]<<" "<<exponent_5[i]<<"\n";
}**/
int n,d,e2=0,e3=0,e5=0,cnt=0;
cin>>n>>d;
if(d==2){
for(int i=1;i<=n;i++){
e2=e2+exponent_2[n-i+1]-exponent_2[i];
e3=e3+exponent_3[n-i+1]-exponent_3[i];
e5=e5+exponent_5[n-i+1]-exponent_5[i];
if(e2>0)cnt++;
}
}
if(d==3){
for(int i=1;i<=n;i++){
e2=e2+exponent_2[n-i+1]-exponent_2[i];
e3=e3+exponent_3[n-i+1]-exponent_3[i];
e5=e5+exponent_5[n-i+1]-exponent_5[i];
if(e3>0)cnt++;
}
}
if(d==4){
for(int i=1;i<=n;i++){
e2=e2+exponent_2[n-i+1]-exponent_2[i];
e3=e3+exponent_3[n-i+1]-exponent_3[i];
e5=e5+exponent_5[n-i+1]-exponent_5[i];
if(e2>1)cnt++;
}
}
if(d==5){
for(int i=1;i<=n;i++){
e2=e2+exponent_2[n-i+1]-exponent_2[i];
e3=e3+exponent_3[n-i+1]-exponent_3[i];
e5=e5+exponent_5[n-i+1]-exponent_5[i];
if(e5>0)cnt++;
}
}
if(d==6){
for(int i=1;i<=n;i++){
e2=e2+exponent_2[n-i+1]-exponent_2[i];
e3=e3+exponent_3[n-i+1]-exponent_3[i];
e5=e5+exponent_5[n-i+1]-exponent_5[i];
if(e2>0&&e3>0)cnt++;
}
}
cout<<cnt;
}