Chúng tôi muốn factorize một số nửa nguyên tố . Mục tiêu của thử thách này là để tìm hai số nguyên nhỏ và mà có thể được trivially factorized với phương pháp Fermat, do đó cho phép dễ dàng trích các yếu tố của .
Nhiệm vụ
Cho một bán cầu và một số nguyên dương , chúng tôi xác định và là:
Bước # 1 - Tìm
Trước tiên bạn cần tìm giá trị nhỏ nhất có thể của sao cho là một số vuông ( hay còn gọi là hình vuông hoàn hảo).
Điều này cho phép nhân tố với một lần lặp duy nhất của phương pháp nhân tố hóa Fermat . Cụ thể hơn, điều này ngay lập tức dẫn đến:
(Cập nhật: trình tự này hiện được xuất bản dưới dạng A316780 )
Bước # 2 - Hệ số hóa
Sau đó, bạn phải tìm hai số nguyên dương và sao cho:v
c u = x + √
nơi và d là những yếu tố chính của N .
Tóm lược
Nhiệm vụ của bạn là viết một chương trình hoặc hàm lấy làm đầu vào và in hoặc xuất u và v theo bất kỳ thứ tự và bất kỳ định dạng hợp lý nào.
Thí dụ
Hãy xem xét
Bước 1
Giá trị nhỏ nhất có thể có của là 40 , cho:
y=28232-40×199.163=7.969.329-7.966.520=2809=532kN=(2823+53)×(2823-53)kN=2876×2770
Bước 2
Hệ số chính xác của là k = 4 × 10 , bởi vì:
k N = ( 719 × 4 ) × ( 277 × 10 ) N = 719 × 277
Vì vậy, câu trả lời đúng sẽ là hoặc [ 10 , 4 ] .
Quy tắc
- Không bắt buộc phải áp dụng nghiêm ngặt hai bước được mô tả ở trên. Bạn có thể sử dụng bất kỳ phương pháp nào khác, miễn là nó tìm thấy các giá trị chính xác của và v .
- Đầu vào được đảm bảo là một bán kết.
- Đây là môn đánh gôn, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng.
- Sơ hở tiêu chuẩn bị cấm.
Các trường hợp thử nghiệm
N | k | Output
-----------+------+------------
143 | 1 | [ 1, 1 ]
2519 | 19 | [ 1, 19 ]
199163 | 40 | [ 4, 10 ]
660713 | 1 | [ 1, 1 ]
4690243 | 45 | [ 9, 5 ]
11755703 | 80 | [ 40, 2 ]
35021027 | 287 | [ 7, 41 ]
75450611 | 429 | [ 143, 3 ]
806373439 | 176 | [ 8, 22 ]
1355814601 | 561 | [ 17, 33 ]
3626291857 | 77 | [ 7, 11 ]
6149223463 | 255 | [ 17, 15 ]
6330897721 | 3256 | [ 74, 44 ]
Ví dụ thực hiện
N
trong thực tế sẽ là một bán kết không?