Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
cho em hỏi bài này với ạ
viết chương trình cho phép nhập vào từ bàn phím một số nguyên dương > 5. Kiểm tra số đó có phải là số nguyên tố không, nếu phải thì tách thành tổng của 3 số nguyên tố. Đưa ra màn hình 3 số nguyên tố thoả mãn yêu cầu.
thuật toán thì mình nghĩ như này , bạn tự code theo ý tưởng này nha :
lý thuyết :
- số nguyên tố là số lẻ (trừ số 2 là ngoại lệ) và số nguyên tố lẻ nhỏ nhất là 3 . 1 Số nguyên tố N > 5 luôn có thể tách thành N = 3 + x + y , trong đó x có thể bằng y và đều là số nguyên tố lẻ , ví dụ 13 = 3 + 5 + 5 hay 19 = 3 + 11 + 5 . Và chỉ có duy nhất 1 trường hợp ngoại lệ N được tách thành 3 số mà trong đó có số chẵn là trường hợp 7 = 3 + 2 + 2 . Cái ta cần tìm là cặp số x + y = N - 3
code :
- viết 1 hàm kiểm tra 1 số có phải số nguyên tố hay ko , cái này trên mạng có chỉ
- nhập vào số N bất kì thì kiểm tra số đó có là nguyên tố ko . Nếu đúng thì lấy k = (N-3)/2
- nếu k là số chẳn thì k = k - 1 cho thành lẻ (vì số nguyên tố là lẻ)
- cho vòng lặp for ( k ; k >=3 ; k-2 ) //( mục đích là tìm x )
xét k là số nguyên tố ko ?
+ đúng thì h = N - 3 - k . Xét h là nguyên tố ko ? . Nếu h cũng là nguyên tố thì x = k , y = h , break vòng lặp //( mục đích tìm y phù hợp với x )
+ sai thì tiếp tục vòng lặp
=> thu được x và y cùng với số 3 là có kết quả như đề mong muốn