Lý lịch
Ước số chung lớn nhất ( viết tắt là gcd ) là một hàm toán học thuận tiện, vì nó có nhiều tính chất hữu ích. Một trong số đó là danh tính của Bézout : nếu d = gcd(a, b)
, thì tồn tại số nguyên x
và y
như vậy d = x*a + y*b
. Trong thử thách này, nhiệm vụ của bạn là trực quan hóa tài sản này bằng nghệ thuật ASCII đơn giản.
Đầu vào
Đầu vào của bạn là hai số nguyên dương a
và b
, được đưa ra ở bất kỳ định dạng hợp lý nào. Bạn cũng có thể sử dụng các đầu vào đơn nhất (lặp lại một ký tự ASCII có thể in duy nhất theo lựa chọn của bạn), nhưng bạn phải nhất quán và sử dụng cùng một định dạng cho cả hai đầu vào. Các đầu vào có thể theo thứ tự bất kỳ, và chúng có thể bằng nhau.
Đầu ra
Đầu ra của bạn là một chuỗi s
độ dài lcm(a, b) + 1
( lcm là viết tắt của bội số chung thấp nhất). Các ký tự s
đại diện cho số nguyên từ 0
đến lcm(a, b)
. Ký tự s[i]
là chữ thường o
nếu i
là bội số của a
hoặc b
, và một khoảng thời gian .
khác. Lưu ý rằng số 0 là bội số của mọi số. Bây giờ, vì bản sắc Bézout của, sẽ có ít nhất một cặp nhân vật o
trong s
có khoảng cách là chính xác gcd(a, b)
. Cặp ngoài cùng bên trái sẽ được thay thế bằng chữ hoa O
; đây là đầu ra cuối cùng
Thí dụ
Hãy xem xét các đầu vào a = 4
và b = 6
. Sau đó, chúng tôi có gcd(a, b) = 2
và lcm(a, b) = 12
, do đó, chiều dài s
sẽ được 13
. Bội số của a
và b
được tô sáng như sau:
0 1 2 3 4 5 6 7 8 9 10 11 12
o . . . o . o . o . . . o
Có hai cặp o
s có khoảng cách hai, nhưng chúng ta sẽ chỉ thay thế các cặp ngoài cùng bằng O
s, vì vậy đầu ra cuối cùng là
o...O.O.o...o
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
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
hoặcO
.) Hoặc nó phải được1
? Hay là0
?