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
Bài liên quan
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
vậy số 7 thì sao ạ? Nó tách ra 4 với 3 ạ? @@!
số 4 có là số nguyên tố đâu mà tách ra được kiểu đó
…e đang suy nghĩ ạ@@!
Đố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
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é!
a làm xong từ tối đó luôn rồi e ơi :3
ý a là cái ngày a post bài ấy :v
Reply của anh Phúc đúng rồi kìa :)))
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 ạ!
bài này mà tìm k nhỏ nhất thì sao nhỉ