Pagini recente » Cod sursa (job #1171540) | Cod sursa (job #2018143) | Cod sursa (job #2483044) | Cod sursa (job #2350543) | Cod sursa (job #2910814)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <ctype.h>
#define MAX 5000005
using namespace std;
//ifstream f("in.in");
//ofstream g("out.out");
ifstream f("pascal.in");
ofstream g("pascal.out");
int n,dd,d[MAX],t[MAX],c[MAX],sol=0;
int main(){
f>>n>>dd;
///n / 2 incearca
for(int i=2;i<=n;i++){
if(i%2==0)
d[i] = 1 + d[i/2];
if(i%3==0)
t[i] = 1 + t[i/3];
if(i%5==0)
c[i] = 1 + c[i/5];
}
for(int i=2;i<=n;i++){
d[i]+=d[i-1];
t[i]+=t[i-1];
c[i]+=c[i-1];
}
for(int j=1;j<n;j++){
if(dd==2){
int aux = d[n] - d[j] - d[n-j];
if(aux>=1){
sol++;
}
}else if(dd==3){
int aux = t[n] - t[j] - t[n-j];
if(aux>=1){
sol++;
}
}else if(dd==5){
int aux = c[n] - c[j] - c[n-j];
if(aux>=1){
sol++;
}
}else if(dd==4){
int aux = d[n] - d[j] - d[n-j];
if(aux>=2){
sol++;
}
}else if(dd==6){
int aux1 = d[n] - d[j] - d[n-j];
int aux2 = t[n] - t[j] - t[n-j];
if(min(aux1,aux2)>=1){
sol++;
}
}
}
g<<sol;
f.close();
g.close();
return 0;
}