Pagini recente » Cod sursa (job #1717525) | Cod sursa (job #606766) | Cod sursa (job #788687) | Cod sursa (job #3130930) | Cod sursa (job #1025980)
#include <cstdio>
int power( int n, int b ) {
int count = 0;
if ( b == 2 || b == 4 || b == 8 ) {
while ( n ) {
count += n >> 1;
n >>= 1;
}
if ( b == 2 )
return count;
if ( b == 4 )
return count / 2;
return count / 3;
}
if ( b == 3 || b == 6 || b == 9 ) {
while ( n ) {
count += n / 3;
n /= 3;
}
if ( b == 9 )
return count / 2;
return count;
}
if ( b == 5 || b == 10 ) {
while ( n ) {
count += n / 5;
n /= 5;
}
return count;
}
if ( b == 7 )
while ( n ) {
count += n / 7;
n /= 7;
}
return count;
}
long long solve( int n, int b ) {
long long ans = 0;
for ( int i = 2; i <= n; ++i )
ans += ( long long ) power( i, b );
return ans;
}
int main() {
FILE *fin, *fout;
fin = fopen( "zero2.in", "r" );
fout = fopen( "zero2.out", "w" );
for ( int i = 0; i < 10; ++i ) {
int n, b;
fscanf( fin, "%d%d", &n, &b );
fprintf( fout, "%lld\n", solve( n, b ) );
}
fclose( fin );
fclose( fout );
}