01/10/2018, 10:16

Hàm check số nguyên tố

int checkPrime(int x){
if(x<2) return 0;
for(int i=2;i<=x-1;i++)
if (x%i==0) return 0;
else return 1;
}
mọi người cho mình hỏi hàm check số nguyên tố của mình có j sai mà sao mình test 9 với 25 đều là số nguyên tố???

vtrnnhlinh viết 12:29 ngày 01/10/2018

format code lại cho quen bạn nhé dù code vẫn đọc được

Henry viết 12:24 ngày 01/10/2018

Mấu chốt là ở

if (x % i == 0)
{
    return 0;
}
else
{
    return 1;
}

Ví dụ số n là 9 thì i sẽ có các giá trị từ 2 ---> 8. Ngay từ trường hợp đầu tiên. 9 %2 == 0. Sai, chạy ra elsereturn 1; về ngay lập tức.
Giải pháp: Bỏ phần else đi

Bài liên quan
0