Pagini recente » Cod sursa (job #1255385) | Cod sursa (job #1542228) | Cod sursa (job #987455) | Cod sursa (job #777049) | Cod sursa (job #1168460)
#include <cstdio>
int fact[7] = { 2, 3, 5, 7, 11, 13, 17 }, div[10], st[10];
int c, d, m, M, nrd, nr, nc, x;
void comb( int niv, int cate, int val ) {
if( niv == cate + 1 )
x += M / val;
else {
for( int i = st[niv-1] + 1 ; i <= nrd - cate + niv ; ++i )
if( val * div[i] <= M )
comb( niv + 1, cate, val * div[i] );
}
}
int main () {
FILE *f, *g;
f = fopen( "mins.in", "r" );
g = fopen( "mins.out", "w" );
fscanf( f, "%d%d", &c, &d );
--c;
--d;
m = c < d ? c : d;
M = c > d ? c : d;
for( int i = 1 ; i <= m ; ++i ) {
nrd = 0;
for( int j = 0 ; j < 7 ; ++j )
if( i % fact[j] == 0 )
div[++nrd] = fact[j];
nc = 0;
for( int j = 1 ; j <= nrd ; ++j ) {
x = 0;
comb( 1, 1, 1 );
nc += x;
}
nr += M - nc;
}
fprintf( g, "%d\n", nr );
fclose( f );
fclose( g );
return 0;
}