Pagini recente » Cod sursa (job #1550373) | Cod sursa (job #3005219) | Cod sursa (job #213758) | Cod sursa (job #308257) | Cod sursa (job #3154962)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
#define INF 100000000
int v2[5000001],v3[5000001],v5[5000001];
void prec(int n){
int i,ci;
for(i=1;i<=n;i++){
v2[i]=v2[i-1];v3[i]=v3[i-1];v5[i]=v5[i-1];
///2
ci=i;
while(ci%2==0){
v2[i]++;
ci/=2;
}
///3
ci=i;
while(ci%3==0){
v3[i]++;
ci/=3;
}
///5
ci=i;
while(ci%5==0){
v5[i]++;
ci/=5;
}
}
}
int main()
{
int n,d,rasp=0,i;
cin>>n>>d;
prec(n);
for(i=0;i<=n;i++){
if(d==2){
if(v2[n]>v2[i]+v2[n-i])
rasp++;
}else if(d==3){
if(v3[n]>v3[i]+v3[n-i])
rasp++;
}else if(d==4){
if(v2[n]-v2[i]+v2[n-i]>1)
rasp++;
}else if(d==5){
if(v5[n]>v5[i]+v5[n-i])
rasp++;
}else{
if(v2[n]>v2[i]+v2[n-i] && v3[n]>v3[i]+v3[n-i])
rasp++;
}
}
cout<<rasp;
return 0;
}