30/09/2018, 20:23

Bài toán số nguyên tố

Đề: Tìm các số < 1000 thỏa mãn: khi phân tích số đó thành tích các số nguyên tố rồi cộng các số nguyên tố vừa phân tích ta lại được một số nguyên tố.
VD: 12 = 322
3+2+2=7 (thỏa mãn)
Em code, nhưng chạy nó chỉ hiện ra mỗi số 1. Mọi người tìm hộ e lỗi sai với ạ.
http://codepaste.net/teed4y

Huy viết 22:36 ngày 30/09/2018

Bài của mình

#include<iostream>
    using namespace std;
    const int len=1000;
    int so_nguyen_to(int a);
    int main()
    {
        int i,j,n;
        int s=0;
        for(i=2; i<len; ++i)
        {
            n=i;
            for(j=2; j<=i;)
            {
                if(i % j == 0)
                {
                    i=i/j;
                    s+=j;
                }
                else
                    j++;
            }
            if(so_nguyen_to(s))
                cout << n << "(s = " << s << ")" << " ";
            i=n;
            s=0;
        }
    }
    int so_nguyen_to(int a)
    {
        int i;
        for ( i = 2; i < a ; i++ )
            if(a % i == 0)
                return 0;
        return 1;
    }
Bé tập Code viết 22:35 ngày 30/09/2018

Mình chưa đọc nội dung nhưng nhìn qua thấy bạn để system("pause"); sau return thì làm sao nó pause console lại cho bạn nhìn kết quả được.

Vũ Quốc Phong viết 22:26 ngày 30/09/2018

Bài của mình cho cái output
có cả số 4, thử mấy cái dưới thì thỏa mãn hết. tìm k ra lỗi sai luôn.

Vũ Quốc Phong viết 22:38 ngày 30/09/2018

T tìm ra lỗi sai rồi. cảm ơn mọi người nhé. :))

Bài liên quan
0