01/10/2018, 00:38

Ai xem hộ em bài này em làm sai ở đâu với

Đầu bài: Đếm số cách biểu diễn của 1 số nguyên thành tổng các số nguyên tố liên tiếp. Ví dụ :53 có hai cách là 5 + 7 + 11 + 13 + 17 và 53. 41 có ba cách 2+3+5+7+11+13, 11+13+17, và 41. Số 20 không có cách nào vì các biểu diễn như 7 + 13 và 3 + 5 + 5 + 7 không gồm các số nguyên tố liên tiếp.

int main()
{
    // Sang so nguyen to.
    int n = 100;
    int f[1000],b[1000];
    b[1] = 1;
    f[1] = 0;

    for (int i = 2; i < n; i++)
    {
        if(b[i] != 1)
        {
            f[i] = i;
            for(int j = i * i; j < n; j += i)
            {
                b[j] = 1;
            }
        }
    }

    int l[100000];
    int i = 0;

    // vong lap de nhap toi 0 thi dung lai chuong trinh.
    do
    {
        int dem = 0;
        int tong  = 0;

        cin >> l[i];

        // tinh so cach tinh tong cac so bang cac so nguyen.
        for(int k = 2; k <= n; k++)
        {
            for(int h = k + 1; h <=n; h++)
            {
                if(tong < l[i])
                {
                    tong = f[k] + f[h];
                }
                if(tong == l[i])
                {
                    dem ++;
                }
            }
        }
        cout << "   " << dem << endl;
    }while(l[i] != 0);
    return 0;
}
Dương Nylghara viết 02:45 ngày 01/10/2018

Hãy nên tập debug chương trình. để xem sai chỗ nào …!!

Đây là điều thiết yếu khi đi làm.
Video hướng dẫn debug khá là nhiều, tự tìm hiểu nha
Thân!!

Bài liên quan
0