Pagini recente » Cod sursa (job #1196139) | Cod sursa (job #1137824) | Cod sursa (job #1825516) | Cod sursa (job #493051) | Cod sursa (job #928253)
Cod sursa(job #928253)
#include <iostream>
#include <fstream>
using namespace std;
long long R, S, D, Nr2, Nr3, Nr5;
long long Legendre( long long numar, long long fact ){
long long s = 0;
while ( numar >= fact )
s += numar / fact,
numar /= fact;
return s;
}
void rezolva(){
for ( long long i = 1; i < R; ++i ){
Nr2 = Legendre( R, 2) - Legendre( i, 2) - Legendre( R - i, 2);
Nr3 = Legendre( R, 3) - Legendre( i, 3) - Legendre( R - i, 3);
Nr5 = Legendre( R, 5) - Legendre( i, 5) - Legendre( R - i, 5);
switch( D ){
case 2:
if ( Nr2 )
S++;
break;
case 3:
if ( Nr3 )
S++;
break;
case 4:
if ( Nr2 > 1 )
S++;
break;
case 5:
if ( Nr5 )
S++;
break;
case 6:
if ( Nr2 && Nr3 )
S++;
break;
default: break;
}
}
}
void citire(){
ifstream f("pascal.in");
f >> R >> D;
f.close();
}
void afis(){
ofstream g("pascal.out");
g << S << "\n";
g.close();
}
int main(){
citire();
rezolva();
afis();
return 0;
}