01/10/2018, 13:39
Code kiểm tra số nguyên tố bị sai các số dạng 3^n
code mình kiểm tra các số nguyên tố kia đúng, các hợp số khác cũng ra đúng, nhưng có chỉ 9,27,81(3^n) là bị lỗi: ví dụ như 9 kiểm tra lại ra là số nguyên tố
#include<stdio.h>
#include<math.h>
int SNT(int n)
{
if(n==1)
return 0;
else
{
for(int i=2;i<=(int)sqrt(n);i++)
if(n%i==0)
return 0;
else
return 1;
}
}
void main()
{
int n;
scanf("%d",&n);
if(SNT(n)==0)
printf("ko");
else
printf("co");
}
Bài liên quan
Code lởm quá. n không chia hết cho 2 nhưng chia hết cho 5 thì sao?
thì khi i tăng lên i==5 thì n%5==0 thì return 0=> ko phải số nguyên tố
Nhưng tại sao có else?
n = 35, (int)sqrt(n) = 5
i = 2 -> n % i != 0 -> dính vào else -> văng ngay return 1. Ổn không?
Cám ơn bạn nhiều mình đã hiểu rồi bây h chạy ok rồi