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ố???

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

1 Like

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

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?