Если l и r имеют расстояние меньше 2, то таких триплетов не существует, поскольку мы хотим, чтобы все они были различны.
Если их расстояние равно 2, единственная возможность состоит в том, если выбор равен l, l +1, л + 2. Если l чётно, то это правильный счетчик. Однако, если l нечетно, то такого примера не существует, поскольку l и l + 1 взаимно просты, l + 1 и l + 2 должны быть взаимно простыми, но l и l + 2 не могут иметь 2 в качестве общего множителя. поскольку они являются нечетными числами.
Если расстояние больше 2, просто выберите a, чтобы быть наименьшим четным числом, по крайней мере равным l, и верните (a, a + 1, a + 2). a и a + 2 имеют общий множитель 2.
Правка после попытки показана, вот возможный код C ++:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
long long l,r,i,c, first;
cin >> l >> r;
c=r-l;
if ((c<2) || (c==2) && (l%2 == 1)){
cout << "-1" << endl;
}
else{
first = l + l % 2;
cout << first << " " <<first+1 << " " << first+2 << endl;
}
}