Vào khoảng năm 1637, Pierre de Fermat đã viết trong lề của bản sao Arithmetica của mình:
It is impossible to separate a cube into two cubes, or a fourth power
into two fourth powers, or in general, any power higher than the
second, into two like powers. I have discovered a truly marvelous
proof of this, which this margin is too narrow to contain.
Thật không may cho chúng tôi, lề vẫn còn quá hẹp để chứa bằng chứng. Hôm nay, chúng ta sẽ viết vào lề một chương trình đơn giản xác nhận bằng chứng cho các đầu vào tùy ý.
Các thách thức
Chúng tôi muốn một chương trình cho chức năng cung cấp một sức mạnh, tách nó thành hai cặp hai sức mạnh càng gần với sức mạnh càng tốt. Chúng tôi muốn chương trình thực hiện điều này càng nhỏ càng tốt để nó có thể phù hợp với lề.
Đầu vào
Sức mạnh và số sức mạnh : c
,x
Các ràng buộc: c > 2
vàx > 2
Đầu vào có thể thông qua các đối số chương trình, đối số chức năng hoặc từ người dùng.
Đầu ra
Chuỗi chính xác: " a^x + b^x < c^x
" với a
, b
, c
, và x
thay thế bằng giá trị số nguyên nghĩa đen của họ. a
và b
phải được chọn sao cho a^x + b^x < c^x
và không có giá trị nào khác của a
hoặc b
sẽ làm cho nó gần hơn c^x
. Cũng thế:a>=b>0
Đầu ra có thể thông qua giá trị trả về của hàm, thiết bị xuất chuẩn, lưu vào tệp hoặc hiển thị trên màn hình.
Ví dụ:
> 3 3
2^3 + 2^3 < 3^3
> 4 3
3^3 + 3^3 < 4^3
> 5 3
4^3 + 3^3 < 5^3
> 6 3
5^3 + 4^3 < 6^3
> 7 3
6^3 + 5^3 < 7^3
> 8 3
7^3 + 5^3 < 8^3
Do kỹ năng viết trung bình của Fermat, các ký tự không thể in được không được phép. Chương trình có số lượng nhân vật ít nhất sẽ thắng.
Bảng xếp hạng
Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
## Language Name, N characters
Ngoài ra, bạn có thể bắt đầu với:
## Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Nếu ở đó bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ phiên dịch), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:
## Perl, 43 + 2 (-p flag) = 45 bytes
Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích bảng xếp hạng:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
x
, sau đó c
?
a>=b>0
hoặc ví dụ đầu tiên của bạn sẽ không hợp lệ. Và tại sao chúng ta phải hiển thị<
khi bạn muốn nó được<=
?