Помогите с задачей

нужно найти наименьшее общее кратное, подскажите пожалуйста, почему в некоторых моментах ломается?
По дате
По рейтингу
12345678910
#include <iostream>
#include <numeric>
using namespace std;
int main() {
int a, b;
cout << ">>> ";
cin >> a >> b;
auto c = lcm(a, b);
cout << "<<< " << c << '\n';
}
Во-первых, НОК таким перебором не считают, даже школьники.
Во-вторых, этот код не "в некоторых моментах ломается?", а вообще не работает, так как
1) в теле цикла создаём i = 2;
2) ...
3) увеличиваем i на единицу и уничтожаем i
4) повторяем до бесконечности с шага 1
Больше по теме