Задний план
Наибольший общий делитель ( для краткости gcd ) - это удобная математическая функция, поскольку она имеет много полезных свойств. Одним из них является личность Безу : если d = gcd(a, b), то существуют целые числа xи yтакие, что d = x*a + y*b. В этой задаче ваша задача состоит в том, чтобы визуализировать это свойство с помощью простого искусства ASCII.
вход
Ваши входы два положительных целых чисел aи b, приведенные в любом приемлемом формате. Вы также можете использовать унарные входные данные (повторы одного печатного символа ASCII по вашему выбору), но вы должны быть последовательными и использовать один и тот же формат для обоих входных данных. Входные данные могут быть в любом порядке, и они могут быть равны.
Выход
Ваш вывод представляет собой строку sдлины lcm(a, b) + 1( lcm обозначает наименьшее общее кратное). Символы sпредставляют целые числа от 0до lcm(a, b). Символ s[i]является строчным, oесли iкратен aили b, и период в .противном случае. Обратите внимание, что ноль кратен каждому числу. Теперь, из - за идентичности Безу, будет по крайней мере одна пара символов oв sкоторых расстояние точно gcd(a, b). Крайняя левая такая пара должна быть заменена заглавными Os; это окончательный результат.
пример
Рассмотрим входы a = 4и b = 6. Тогда у нас gcd(a, b) = 2и lcm(a, b) = 12, значит, длина sбудет 13. Кратные aи bвыделены следующим образом:
0 1 2 3 4 5 6 7 8 9 10 11 12
o . . . o . o . o . . . o
Есть две пары os с расстоянием два, но мы заменим только самые левые с Os, поэтому окончательный результат
o...O.O.o...o
Правила и оценки
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Контрольные примеры
1 1 -> OO
2 2 -> O.O
1 3 -> OOoo
4 1 -> OOooo
2 6 -> O.O.o.o
2 3 -> o.OOo.o
10 2 -> O.O.o.o.o.o
4 5 -> o...OO..o.o.o..oo...o
8 6 -> o.....O.O...o...o.o.....o
12 15 -> o...........O..O........o.....o.....o........o..o...........o
19 15 -> o..............o...o..........o.......o......o...........o..o..............OO.............o....o.........o........o.....o............o.o..............o.o............o.....o........o.........o....o.............oo..............o..o...........o......o.......o..........o...o..............o
.,oилиO.) Или же он должен быть1? Или0?