Pagini recente » Cod sursa (job #1386331) | Cod sursa (job #965940) | Cod sursa (job #2010390) | Cod sursa (job #1111256) | Cod sursa (job #238006)
Cod sursa(job #238006)
#include <stdio.h>
FILE*in = fopen("pascal.in","r");
FILE*out = fopen("pascal.out","w");
struct fact_p { int doi;
int trei;
int cinci;
} x[5000001];
int main(){
long long r,d,n;
long long i,j,k,p,c=0;
fscanf(in,"%lld%lld",&r,&d);
//if((r+1)%2 == 0) n = (r+1)/2;
//else n = (r+1)/2+1;
for(i=0;i<=r;i++){
j=i;
x[i].doi = x[i].trei = x[i].cinci = 0;
k=2;
while(j>0 && k <=5){
p=0;
while(j%k == 0){j/=k;p++;}
if(k == 2) x[i].doi = p;
if(k == 3) x[i].trei = p;
if(k == 5) x[i].cinci= p;
k++;
}
if(i>1){
x[i].doi += x[i-1].doi;
x[i].trei += x[i-1].trei;
x[i].cinci += x[i-1].cinci;
}
}
for(i=1;i<r;i++){
if(d == 2){
p = x[r].doi - x[r-i].doi - x[i].doi;
if(p>0) c++;
}
if(d == 3){
p = x[r].trei - x[r-i].trei - x[i].trei;
if(p>0) c++;
}
if(d == 4){
p = x[r].doi - x[r-i].doi - x[i].doi;
if(p%2 == 0) c++;
}
if(d == 5){
p = x[r].cinci - x[r-i].cinci - x[i].cinci;
if(p>0) c++;
}
if(d == 6)
if(x[r].doi - x[r-i].doi - x[i].doi >0)
if(x[r].trei - x[r-i].trei - x[i].trei >0) c++;
}
//if((r+1)%2 == 0) c = c * 2;
//else c = c * 2 -1;
fprintf(out,"%lld",c);
return 0;
}