Latar Belakang
Pembagi umum terbesar ( singkatnya gcd ) adalah fungsi matematika yang praktis, karena memiliki banyak properti yang berguna. Salah satunya adalah identitas Bézout : jika d = gcd(a, b), maka ada bilangan bulat xdan ysemacamnya d = x*a + y*b. Dalam tantangan ini, tugas Anda adalah memvisualisasikan properti ini dengan seni ASCII sederhana.
Memasukkan
Input Anda adalah dua bilangan bulat positif adan b, diberikan dalam format apa pun yang masuk akal. Anda juga dapat mengambil input unary (pengulangan satu karakter ASCII yang dapat dicetak pilihan Anda), tetapi Anda harus konsisten dan menggunakan format yang sama untuk kedua input. Masukan mungkin dalam urutan apa pun, dan mereka mungkin sama.
Keluaran
Output Anda adalah string spanjang lcm(a, b) + 1( lcm adalah singkatan untuk multiple umum terendah). Karakter smewakili integer dari 0ke lcm(a, b). Karakter s[i]adalah huruf kecil ojika imerupakan kelipatan dari aatau b, dan periode .sebaliknya. Perhatikan bahwa nol adalah kelipatan dari setiap angka. Sekarang, karena identitas Bézout ini, akan ada setidaknya satu pasangan dari karakter odi syang jarak persis gcd(a, b). Pasangan yang paling kiri harus diganti oleh huruf besar O; ini adalah hasil akhir.
Contoh
Pertimbangkan input a = 4dan b = 6. Lalu kita punya gcd(a, b) = 2dan lcm(a, b) = 12, jadi panjangnya sakan 13. Kelipatan dari adan bdisorot sebagai berikut:
0 1 2 3 4 5 6 7 8 9 10 11 12
o . . . o . o . o . . . o
Ada dua pasang os dengan jarak dua, tetapi kami hanya akan mengganti yang paling kiri dengan Os, sehingga hasil akhirnya adalah
o...O.O.o...o
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
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
.,oatauO.) Atau haruskah demikian1? Atau0?