Tôi đang ở nhà một người bạn để ăn tối và họ đề xuất ý tưởng về "không gian vectơ nhân tố chính". Trong không gian này, các số nguyên dương được biểu thị dưới dạng một vectơ sao cho phần tử thứ n trong vectơ là số lần số nguyên tố thứ n chia số. (Lưu ý rằng điều này có nghĩa là các vectơ của chúng ta có số lượng thuật ngữ vô hạn.) Ví dụ 20 là
2 0 1 0 0 0 ...
Bởi vì hệ số nguyên tố của nó là 2 * 2 * 5 .
Vì hệ số nguyên tố là duy nhất nên mỗi số tương ứng với một vectơ.
Chúng ta có thể thêm vectơ bằng cách thêm cặp của chúng. Điều này giống như nhân số mà chúng được liên kết. Chúng ta cũng có thể thực hiện phép nhân vô hướng, giống như tăng số liên kết lên một lũy thừa.
Vấn đề là không gian này trên thực tế không phải là không gian vectơ vì không có nghịch đảo. Nếu chúng ta tiếp tục và thêm các nghịch đảo và đóng không gian vectơ, bây giờ chúng ta có một cách để biểu thị mọi số hữu tỷ dương dưới dạng một vectơ. Nếu chúng ta giữ thực tế rằng phép cộng vector đại diện cho phép nhân. Khi đó nghịch đảo của một số tự nhiên là đối ứng của nó.
Ví dụ số 20 có vectơ
2 0 1 0 0 0 ...
Vì vậy, tỷ lệ 1/20 là nghịch đảo của nó
-2 0 -1 0 0 0 ...
Nếu chúng ta muốn tìm vectơ liên kết với một phân số như 14/15, chúng ta sẽ tìm thấy 14
1 0 0 1 0 0 ...
và 1/15
0 -1 -1 0 0 0 ...
và nhân chúng bằng cách thực hiện phép cộng vector
1 -1 -1 1 0 0 ...
Bây giờ chúng ta có một không gian vectơ, chúng ta có thể sửa đổi nó để tạo thành một không gian sản phẩm bên trong bằng cách cho nó một sản phẩm bên trong. Để làm điều này, chúng tôi đánh cắp sản phẩm bên trong rằng các không gian vectơ được đưa ra một cách cổ điển. Tích trong của hai vectơ được định nghĩa là tổng của phép nhân theo cặp của các số hạng của chúng. Ví dụ 20 · 14/15 sẽ được tính như sau
20 = 2 0 1 0 0 0 ...
14/15 = 1 -1 -1 1 0 0 ...
2 0 -1 0 0 0 ... -> 1
Một ví dụ khác là sản phẩm 2/19 · 4/19
2/19 = 1 0 0 0 0 0 0 -1 0 0 0 ...
4/19 = 2 0 0 0 0 0 0 -1 0 0 0 ...
2 0 0 0 0 0 0 1 0 0 0 ... -> 3
Nhiệm vụ của bạn là thực hiện một chương trình thực hiện sản phẩm chấm này. Cần lấy hai số hữu tỷ dương thông qua một cặp số nguyên dương (tử số và mẫu số) hoặc loại hợp lý (số float không được phép, vì chúng gây ra vấn đề với độ chính xác và chia hết) và nên xuất ra một số nguyên biểu thị sản phẩm chấm của hai đầu vào.
Đây là môn đánh gôn, vì vậy câu trả lời sẽ được tính bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
4 · 4 = 4
8 · 8 = 9
10 · 10 = 2
12 · 12 = 5
4 · 1/4 = -4
20 · 14/15 = 1
2/19 · 4/19 = 3