Pagini recente » Cod sursa (job #2408044) | Cod sursa (job #253525) | Cod sursa (job #1653644) | Cod sursa (job #3294539) | Cod sursa (job #1337148)
#include <stdio.h>
#define MAXN 5000000
int f[MAXN+1], k[MAXN+1], l[MAXN+1], h[MAXN+1];
int main(){
int n, i, d, j, ans, x;
FILE *fin, *fout;
fin=fopen("pascal.in", "r");
fout=fopen("pascal.out", "w");
fscanf(fin, "%d%d", &n, &d);
if(d!=6){
if(d==4){
x=1;
d/=2;
}else{
x=0;
}
for(i=d; i<=n; i*=d){
for(j=i; j<=n; j+=i){
f[j]++;
}
}
k[0]=0;
for(i=1; i<=n; i++){
k[i]=k[i-1]+f[i];
}
ans=0;
for(i=1; i<n; i++){
ans+=(k[n]-k[i]-k[n-i]>x);
}
}else{
for(i=2; i<=n; i*=2){
for(j=i; j<=n; j+=2){
f[j]++;
}
}
k[0]=0;
for(i=1; i<=n; i++){
k[i]=k[i-1]+f[i];
}
for(i=3; i<=n; i*=3){
for(j=i; j<=n; j+=3){
l[j]++;
}
}
h[0]=0;
for(i=1; i<=n; i++){
h[i]=h[i-1]+l[i];
}
ans=0;
for(i=1; i<n; i++){
ans+=((k[n]-k[i]-k[n-i]>0)&(h[n]-h[i]-h[n-i])>0);
}
}
fprintf(fout, "%d\n", ans);
fclose(fin);
fclose(fout);
return 0;
}