Pagini recente » Cod sursa (job #789702) | Cod sursa (job #2640306) | Cod sursa (job #266277) | Cod sursa (job #1987132) | Cod sursa (job #32486)
Cod sursa(job #32486)
#include<iostream.h>
#include<fstream.h>
main()
{
long long s,s2,s3,d,k,p,delta,ij,x,i,j,n,m,valid;
fstream f("pascal.in",ios::in);
fstream g("pascal.out",ios::out);
f>>i;
f>>d;
valid=0;
if(i%2==0){k=i/2;valid=1;}
else k=i/2;
if((d==2)||(d==3)||(d==5))
{
j=0;
delta=0;
do{
ij=i-j;
s=0;p=d;
do{
s+=i/p;
p*=d;
}while(p<=i);
s2=0;p=d;
do{
s2+=ij/p;
p*=d;
}while(p<=ij);
p=d;s3=0;
do{
s3+=j/p;
p*=d;
}while(p<=j);
s2+=s3;
s-=s2;
if(s>=1){ delta+=2; if((j==k)&&(valid==1))delta--; }
j++;
}while(j<=k);
}
if(d==4)
{
j=0;
delta=0;
do{
ij=i-j;
s=0;p=d;
do{
s+=i/p;
p*=d;
}while(p<=i);
s2=0;p=d;
do{
s2+=ij/p;
p*=d;
}while(p<=ij);
p=d;s3=0;
do{
s3+=j/p;
p*=d;
}while(p<=j);
s2+=s3;
s-=s2;
if(s>=2){delta+=2; if((j==k)&&(valid==1))delta--; }
j++;
}while(j<=k);
}
if(d==6)
{
j=0;
delta=0;
do{
ij=i-j;
s=0;p=2;
do{
s+=i/p;
p*=2;
}while(p<=i);
s2=0;p=2;
do{
s2+=ij/p;
p*=2;
}while(p<=ij);
p=2;s3=0;
do{
s3+=j/p;
p*=2;
}while(p<=j);
s2+=s3;
s-=s2;
x=s;
s=0;p=3;
do{
s+=i/p;
p*=3;
}while(p<=i);
s2=0;p=3;
do{
s2+=ij/p;
p*=3;
}while(p<=ij);
p=3;s3=0;
do{
s3+=j/p;
p*=3;
}while(p<=j);
s2+=s3;
s-=s2;
if((s>=1)&&(x>=1)){delta++; if((j==k)&&(valid==1))delta--; }
j++;
}while(j<=i);
}
g<<delta;
return 0;
}