Lưu ý: thử thách này đã được đăng trên hộp cát .
Giới thiệu
Thử thách này được lấy cảm hứng từ năm 2009 Putnam B1 , một vấn đề trong một cuộc thi toán học đại học. Vấn đề như sau:
Cho thấy rằng mọi số hữu tỷ dương có thể được viết dưới dạng thương số của các sản phẩm của các yếu tố (không nhất thiết phải khác biệt). Ví dụ,
Thử thách
Thử thách của bạn là lấy một cặp số nguyên dương tương đối nguyên tố, đại diện cho tử số và mẫu số của một số hữu tỷ dương (hoặc chỉ chính số hữu tỷ) làm đầu vào và xuất ra hai danh sách (hoặc mảng, v.v.) của các số nguyên tố sao cho số hữu tỷ được nhập bằng với tỷ lệ của sản phẩm của các giai thừa của các số nguyên tố trong danh sách đầu tiên với sản phẩm của các yếu tố của các số nguyên tố trong danh sách thứ hai.
Ghi chú
- Có thể không có bất kỳ số nguyên tố nào chứa cả trong danh sách đầu tiên và trong danh sách thứ hai; tuy nhiên, một số nguyên tố có thể xuất hiện nhiều lần như một mong muốn trong một trong hai danh sách.
- Các đầu vào có thể được giả định cho mỗi được (không giới hạn) trong khoảng từ 1 đến 65535; tuy nhiên, không thể giả định rằng các giai thừa của các số bạn sẽ cần xuất sẽ nằm trong phạm vi này.
Ví dụ đầu vào và đầu ra
Dưới đây là ví dụ về đầu vào và đầu ra hợp pháp.
input=>output
10,9 => [2,5],[3,3,3]
2,1 => [2],[]
3,1 => [3],[2]
1,5 => [2,3,2],[5] (elements of a list may be in any order)
3,2 => [3],[2,2]
6,1 => [3],[]
Các đầu vào (2,2), (0,3), (3.0), (3,6) và (1.65536) là các đầu vào bất hợp pháp (tức là chương trình của bạn không cần phải hành xử theo bất kỳ cách cụ thể nào đối với chúng ). Dưới đây là một số ví dụ về đầu ra bất hợp pháp:
1,2 => [2],[2,2] (2 is in both returned lists)
5,2 => [5],[2,4] (4 is not prime)
2,1 => [2],[1] (1 is not prime either)
3,2 => [3],[2] (3!/2! = 3, not 3/2)
Chấm điểm
Đây là môn đánh gôn , vì vậy điểm số thấp nhất tính bằng byte sẽ thắng!
10/9
chứ không phải là một cặp số 10
và 9
?
10/9
=[2*5]/[3*3]
=[(2!/1!) * (5!/4!)] / [(3!/2!) * (3!/2!)]
=[2! * 5! * 2! * 2!] / [3! * 3! * 1! * 4!]
=(2! * 2! * 2! *5!) / (3! * 3! * 4!)
.