01/10/2018, 01:09

Tìm số k số nguyên tố sao cho tổng của chúng bằng n

Ai cho e xin cái thuật toán câu 2 được không ạ?

Input: Một dòng duy nhất chứa số nguyên n (2 ≤ n ≤ 100 000).

Output

Dòng đầu tiên chứ số nguyên k – Số lượng số nguyên tố nhiều nhất của dãy.
Dòng thứ 2 chứa k số nguyên tố sao cho tổng của chúng bằng n. Bạn có thể xuất kết quả theo bất kì trật tự nào. Nếu có nhiều kết quả, in ra dãy bất kì.
Dữ liệu được cung cấp đảm bảo rằng n có thể tách thành dãy các số nguyên tố.

Example Input 5 Output 2 2 3 Input 6 Output 3 2 2 2

Nguyễn Xuân Phúc viết 03:18 ngày 01/10/2018

mẹo thôi, nếu N chẵn thì kết quả là N/2 số 2, nếu N lẻ thì kết quả là N/2-1 số 2 và 1 số 3

Henry viết 03:09 ngày 01/10/2018

vậy số 7 thì sao ạ? Nó tách ra 4 với 3 ạ? @@!

Nguyễn Xuân Phúc viết 03:16 ngày 01/10/2018

số 4 có là số nguyên tố đâu mà tách ra được kiểu đó

Henry viết 03:25 ngày 01/10/2018

…e đang suy nghĩ ạ@@!

Phạm Phúc viết 03:14 ngày 01/10/2018

Đối với trường hợp này, em chỉ giúp anh phần giải thuật thôi ạ!
anh chạy từ 2-> n
B1: chạy từ 2-> n
B2: kiểm tra nt
B3: n div nt
B4: lấy phần dư tiếp tục với các số nguyên tố còn lại
B5 in ra màn hình

Phạm Phúc viết 03:19 ngày 01/10/2018

Em nhầm, anh không cần chạy như thế đâu ạ, bài của em phía trên đúng một số trường hợp nhất định thôi ạ, đối với cái này, lỗ hổng của bài là số lượng nguyên tố nhiều nhất thì em chỉ cần là
B1: Kiểm tra chẵn lẽ
B2: Nếu chẵn thì in ra màn hình số 2 (n div 2) lần
Ngược lại, in ra màn hình số 2 (n div 2)-1 lần và in ra màn hình một số 3
B3: Kết thúc chương trình
@graktung, còn nếu bài này của anh chỉ cho một số nguyên tố thôi thì phải sửa lại đề bài là tổng các nguyên tố đạt giá trị lớn nhất nhưng <=n ạ !
Nếu em có sai, mọi người chỉ giúp nhé!

Henry viết 03:14 ngày 01/10/2018

a làm xong từ tối đó luôn rồi e ơi :3

Henry viết 03:10 ngày 01/10/2018

ý a là cái ngày a post bài ấy :v

nhatlonggunz viết 03:25 ngày 01/10/2018

Reply của anh Phúc đúng rồi kìa :)))

Phạm Phúc viết 03:23 ngày 01/10/2018

Tại em làm nhầm ạ, em có làm một bài cũng như thế nhưng đề này bị lỗi ạ, mình chỉ cần áp dụng toán là ra ạ!

Ai Android viết 03:18 ngày 01/10/2018

bài này mà tìm k nhỏ nhất thì sao nhỉ

Bài liên quan
0