Cod sursa(job #69510)
Utilizator | Data | 3 iulie 2007 12:53:15 | |
---|---|---|---|
Problema | Pascal | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream.h>
long R,d;
long fact (long n,int d){
short p=d;
int S=0;
while (p<=n){
S+=n/p;
p*=d;}
return S;
}
int main(){
ifstream fin("pascal.in");
ofstream fout("pascal.out");
fin>>R>>d;
long nr=0;
int y=fact(R,d);
for (long i=1;i<R/2;i++)
if (y/(fact(R-i,d)+fact(i,d))==(int)y/(fact(R-i,d)+fact(i,d)))
nr+=2;
if (R%2==0)
if (y/(fact(R-R/2,d)+fact(R/2,d))==(int)y/(fact(R-R/2,d)+fact(R/2,d)))
nr++;
fout<<nr<<"\n";
fin.close();
fout.close();
return 0;
}