Mình lại có challenge cho các bạn đơi!!!(Định ra ngày tết nhưng dạo này bận rộn vì học hành quá).
Đề bài như sau:
Cho số A
, tìm giá trị nhỏ nhất của B + C
nếu B * C = A
. Hãy nhớ rằng cả ba số A, B, C
đều là số nguyên dương(Không được sử dụng một trong 3 số là số nguyên âm). Có thể sử dụng brute force để tim được giá trị thích hợp cho B
va C
. Bạn không thiết phải nhập các chữ số hơn 6 kí tự(Trừ khi bạn thích ra oai thì còn ok ).
Ví dụ: In ra kết quả của số A = 12345
thì B + C = 838
. Mình sẽ giải thích cặn kẽ hơn kết quả này:
có thể biểu diễn số nguyên dương A = 12345
như cái đề ban đầu mình cho là A = B * C
thành tích 2 số B
và C
như sau:
12345 = 1 * 12345
12345 = 3 * 4115
12345 = 5 * 2469
12345 = 15 * 823
Tổng của các thừa số như sau:
112345 => 1+12345 = 12346
34115 => 3+4155 = 4158
52469 => 5+2469 = 2474
15823 => 15+823 = 838
Vậy giá trị nhỏ nhất của B + C
trong trường hợp này là: 838
VD2: Cho các số và kết quả như sau:
12 => 7
456 => 43
4567 => 4568
12345 => 838
Kết quả như vậy vì:
12 = 3 * 4, 456 = 19 * 24, 4567 = 1 * 4567 và 12345 = 15 * 823
Luật:
- Sử dụng mọi ngôn ngữ, mọi chiều trò,…
- Được phép dùng hàm, thư viện có sẵn
- Khuyến khích phân tích code và chia sẻ thư viện. Code càng dài càng bá đạo thì game sẽ vui hơn
Gợi ý:
- Phân tích số đó thành tích của các số nguyên tố. Sau đó công chúng lại
Chúc các bạn code vui vẻ!
Notice: Series “Số nguyên phức tạp” có tận #3 challenge hoặc nhiều hơn cơ!