배경
가장 큰 공약수 ( 간단히 gcd )는 유용한 속성이 많기 때문에 편리한 수학적 함수입니다. 그 중 하나는 베주 항등식 : 경우 d = gcd(a, b)
, 다음 정수가 존재 x
및 y
그러한가 d = x*a + y*b
. 이 과제에서 간단한 ASCII 아트를 사용하여이 속성을 시각화해야합니다.
입력
입력 값은 양의 정수 2 개 a
이며 b
합리적인 형식으로 제공됩니다. 단항 입력 (선택한 단일 인쇄 가능 ASCII 문자 반복)을 사용할 수도 있지만 일관되고 두 입력에 동일한 형식을 사용해야합니다. 입력은 임의의 순서 일 수 있으며, 동일 할 수 있습니다.
산출
출력은 s
길이 의 문자열 입니다 lcm(a, b) + 1
( lcm 은 최소 공배수를 나타냄). 의 문자는 s
에서 0
까지의 정수를 나타냅니다 lcm(a, b)
. 또는 의 배수 인 경우 문자 s[i]
는 소문자 o
이고 그렇지 않은 경우 마침표 입니다. 0은 모든 숫자의 배수입니다. 이제 베주 항등식의 때문에, 문자의 적어도 한 쌍의가있을 것 에서 거리가 정확하게 누구 . 가장 왼쪽 쌍은 대문자로 대체됩니다 . 이것이 최종 출력입니다.i
a
b
.
o
s
gcd(a, b)
O
예
입력 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
o
거리 가 2 인 두 쌍의 s가 있지만 가장 왼쪽의 쌍만 s로 바꾸 O
므로 최종 출력은 다음과 같습니다.
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
?