30/09/2018, 18:33

Xin xem giúp lỗi bài tìm trong đoạn [L,R] có bao nhiêu số nguyên tố có tổng chia hết cho 5?

Chào ạnh chị. Đề bài là nhập t, có t bộ test (t<=100). Nhập L, R. Tìm xem trong đoạn [L;R] có bao nhiêu số nguyên tố chia hết cho 5? Giới hạn: 0 < L, r <=10^6. Nhưng sao em làm bài này cái phần tử cuối nó cứ ra số 0 vậy ạ? Em cám ơn ạ

#include <bits/stdc++.h>

using namespace std;
  int main()
{
    int t, a[100][2], phantu=43327;
    cin >> t;
    int b[50000];                     // Trong đây có nhiều phần tử mình khai báo, nhưng mình sẽ ko nhẵn qua do nhiều quá
        for (int i=1; i<=t; i++)
            for (int j=1; j<=2; j++) cin >> a[i][j];
        for (int i=1; i<=t; i++)
        {
            int trai=a[i][1], phai=a[i][2], l=1, r=phantu;
            while (b[l]<=trai) l++;
            while (b[r]>=phai) r--;
            cout << r-l << " ";
        }
        return 0;
    }
Vĩnh Lợi viết 20:48 ngày 30/09/2018

Trước tiên là bạn cần sửa lại các chỉ số, trong C++, chỉ số phần tử của mảng bắt đầu là 0, không phải 1
Nên mảng a của bạn là a[0->99][0->1], bạn truy xuất a[i][2] là sai rồi …
Cú pháp nhìn sơ qua là thế, còn bạn tính toán sao mình không biết

Gió viết 20:43 ngày 30/09/2018

Snt là số có 2 uoc là 1 và chính nó. Nếu chia hết 5 thì chỉ có duy nhất 5 thoã mãn.

Nguyễn Cát Long Huy viết 20:46 ngày 30/09/2018

Sửa rồi nhưng vẫn lỗi anh

Nguyễn Cát Long Huy viết 20:38 ngày 30/09/2018

à em nhầm, tổng các chữ số trong nguyên tố chia hết cho 5 anh

Gió viết 20:42 ngày 30/09/2018
  • dùng sàng nguyên tố tìm tất cả snt<10^6
  • tính tổng các chữ số của snt
  • dùng qhd để lưu tổng từ 0- cuối vào mảng dp (cộng dồn các số thoã mãn)
  • kq= dp[r]-dp[l-1]
Nguyễn Cát Long Huy viết 20:38 ngày 30/09/2018

quy hoạch động chưa học anh Mà code em bên trên vì s nó lại có số 0 ở cuối mảng anh nên làm bị sai anh

Bài liên quan
0