http://acm.pku.edu.cn/JudgeOnline/problem?id=1212

Код:
#include <iostream>

#define N (1000000)

using namespace std;

int main(void)
{
	static int c[N + 1];

	int k = 0;
	for(int i = 2; i <= N; i++) {
k = (k + 15) % i;
c[i] = k;
	}

	int lo, hi;
	while(cin >> lo >> hi) {
if(lo == 0 && hi == 0) break;

static bool isok[N + 1];

for(int i = 1; i <= lo / 2; i++) {
	isok[i] = true;
}
for(int i = lo; i <= hi; i++) {
	isok[c[i]] = isok[i - c[i]] = false;
}

bool flag = false;
for(int i = 1; i <= lo / 2; i++) {
	if(isok[i]) {
cout << i << endl;
flag = true;
break;
	}
}

if(!flag) {
	cout << "Better estimate needed" << endl;
}
	}

	return 0;
}