Pagini recente » Cod sursa (job #1696871) | Cod sursa (job #492038) | Istoria paginii utilizator/yulyana | Cod sursa (job #482389) | Cod sursa (job #148963)
Cod sursa(job #148963)
#include<stdio.h>
int v[5],t2[5],t1[5],c,c1,c2,xj2,b,xj,r,a,aux,d,n,i,xi,nr;
int main(){
FILE *f=fopen("pascal.in","r");
fscanf(f,"%d %d",&n,&d);
fclose(f);
if(d==4){
d=2;
xi=0;
for(i=d;i<=n;i*=i){
xi+=(n/i);
}
b=xi;
xj=xi;
xj2=0;
for(i=1;i<=n-1;i++){
a=n-i+1;
b=0;
while(a%d==0){
b++;
a/=d;
}
aux=i;
xj-=b;
b=0;
while(aux%d==0){
b++;
aux/=d;
}
xj2+=b;
c=xi-(xj+xj2);
if(c/2>=1)nr++;
}
}
else{
if(d==6){
for(i=2;i<=n;i*=d){
v[2]+=(n/i);
}
for(i=3;i<=n;i*=d){
v[3]+=(n/i);
}
t1[2]=v[2];
t1[3]=v[3];
for(i=1;i<=n-1;i++){
a=n-i+1;
while(a%2==0){
t1[2]--;
a/=2;
}
a=n-i+1;
while(a%3==0){
t1[3]--;
a/=3;
}
a=i;
while(a%2==0){
t2[2]++;
a/=2;
}
a=i;
while(a%3==0){
t2[3]++;
a/=3;
}
if((v[2]-(t1[2]+t2[2]))>0 && ( (v[3]-(t1[3]+t2[3]))>0 ) ){
nr++;
}
}
}
else{
i=d;
xi=0;
for(i=d;i<=n;i*=i){
xi+=(n/i);
}
b=xi;
xj=xi;
xj2=0;
for(i=1;i<=n-1;i++){
a=n-i+1;
b=0;
while(a%d==0){
b++;
a/=d;
}
aux=i;
xj-=b;
b=0;
while(aux%d==0){
b++;
aux/=d;
}
xj2+=b;
if(xi>xj+xj2)nr++;
}
}
}
FILE *g=fopen("pascal.out","w");
fprintf(g,"%d",nr);
fclose(g);
return 0;
}