'''
a = int (input())
b = int (input())
n = 1
while n % a != 0 or n % b != 0:
n += 1
print(n)
'''

Ответ вопросом на вопрос - к чему задавать такие вопросы? Нельзя ли вместо этого аппробировать свою программу на работоспособность, корректность и эффективность? Да, задача решена абсолютно правильно и верно - у меня, например, всё "летает" даже при миллионных а и b, настолько всё замечательно, точно и главное - быстро! А достаточно слабая сама по себе эффективность выбранного алгоритма проявляется только при больших значениях а и b, которые для количества сотрудников учреждения нехарактéрны и совершенно нереалистичны (так, в вышеуказанных командах под десять миллиардов человек может быть только в бреде пьяного ёжика !). Короче, думай сам, пиши сам, сам проверяй и сам решай правильное ли у тебя решение или нет, тогда и не придётся читать идиотские ответы на простые вопросы.
Нет, не правильно. Вычислительная сложность твоего алгоритма: O(a * b). Тогда как простейший вариант, основанный на знании арифметики, обеспечивает O(log(min(a, b))).
НОК (x, y) = x * y / НОД (x, y)
НОД считаем банальным алгоритмом Евклида.
a = int (input())
b = int (input())
p, q = a, b
while q != 0: p, q = q, p % q
print(a * b // p)
Правльно то правильно, но такой подход называется говонокодом. "Тяп ляп и в продашен". То есть если в командах а-ля 9999999999 человек и они не очень-то совпадают по делителям, твоя программа загнётся после первых миллиардов перебора. А если программа может загнуться на этапе вычисления НОКа двух чисел, у тебя проблемы.
a, b = map(int, input().split())
n = max(a, b)
while n % a or n % b: n += 1
print(n)
'''
a = int(input())
b = int(input())
d = a
while d%b:
d += a
print(d)
'''