Pagini recente » Cod sursa (job #478798) | Cod sursa (job #409926) | Cod sursa (job #875100) | Cod sursa (job #2607936) | Cod sursa (job #1825615)
# include <iostream>
# include <fstream>
using namespace std;
# define MAX_R 2500000
int p2[1 + MAX_R];
int p3[1 + MAX_R];
int p5[1 + MAX_R];
int main()
{
ifstream fin( "pascal.in" );
ofstream fout( "pascal.out" );
int r, d, i, j, s, t2, t3, t5, d2, d3, d5;
fin >> r >> d;
p2[2] = 1;
for ( i = 1; i * 2 <= MAX_R; i ++ )
p2[i * 2] = 1 + p2[i];
p3[3] = 1;
for ( i = 1; i * 3 <= MAX_R; i ++ )
p3[i * 3] = 1 + p3[i];
p5[5] = 1;
for ( i = 1; i * 5 <= MAX_R; i ++ )
p5[i * 5] = 1 + p5[i];
if ( d == 2 )
d2 = 1, d3 = 0, d5 = 0;
else if ( d == 3 )
d2 = 0, d3 = 1, d5 = 0;
else if ( d == 4 )
d2 = 2, d3 = 0, d5 = 0;
else if ( d == 5 )
d2 = 0, d3 = 0, d5 = 1;
else if ( d == 6 )
d2 = 1, d3 = 1, d5 = 0;
t2 = t3 = t5 = 0;
s = 0;
for ( i = 1; i <= ( r - 1 ) / 2; i ++ ) {
t2 += p2[r - i + 1] - p2[i];
t3 += p3[r - i + 1] - p3[i];
t5 += p5[r - i + 1] - p5[i];
s += ( t2 >= d2 && t3 >= d3 && t5 >= d5 );
}
if ( r % 2 == 0 ) {
t2 += p2[r - i + 1] - p2[i];
t3 += p3[r - i + 1] - p3[i];
t5 += p5[r - i + 1] - p5[i];
fout << s * 2 + ( t2 >= d2 && t3 >= d3 && t5 >= d5 );
} else
fout << s * 2;// + ( t2 >= d2 && t3 >= d3 && t5 >= d5 );
fin.close();
fout.close();
return 0;
}