Pagini recente » Cod sursa (job #428282) | Cod sursa (job #580756) | Cod sursa (job #3251969) | Cod sursa (job #774721) | Cod sursa (job #780103)
Cod sursa(job #780103)
#include <stdio.h>
FILE *f=fopen("pascal.in","r");
FILE *g=fopen("pascal.out","w");
int r,d,j,k,nr,nr2,i,ci,fac[5000000],nr3,fac2[5000000];
int main(){
fac2[0]=0;
fac[0]=0;
fscanf(f,"%d%d",&r,&d);
k=0;
nr=0;
nr2=0;
nr3=0;
for(i=1;i<=r;i++){
ci=i;
nr=0;
if(d==2 || d==3 || d==5){
while(ci%d==0){ci=ci/d;nr++;} fac[i]=fac[i-1]+nr;}else
{
if(d==4) {
while(ci%2==0){ci=ci/2;nr++;}
nr=nr/2;
fac[i]=fac[i-1]+nr;
}
if(d==6){
while(ci%2==0){ci=ci/2;nr2++;}
while(ci%3==0){ci=ci/3;nr3++;}
fac[i]=fac[i-1]+nr2;
fac2[i]=fac2[i-1]+nr3;
nr2=0;
nr3=0;
}
}
}
if(d==6){
for(j=0;j<=r;j++)
if(fac[r]>(fac[r-j]+fac[j])&& fac2[r]>(fac2[r-j]+fac2[j])) k++;
} else
for(j=0;j<=r;j++)
if(fac[r]>(fac[r-j]+fac[j])) k++;
fprintf(g,"%d",k);
fclose(g);
return 0;
}