Hỏi về vòng lặp

Cho em hỏi nếu em nhập n=2 thì n%i = 2%2 = 0 => a =0 thì nó sẽ báo “n không phải SNT” đúng ko ạ.
Lúc em nhập n=2 thì nó lại báo là SNT mặc dù báo SNT là đúng =))

#include<stdio.h>

int main()
{
	int n, a=1;
	printf("nhap so n = ");
	scanf("%d", &n);
	if(n==1) printf("n khong la SNT, HOP SO");
	else{
	for(int i=2;i<n;++i)
		{
		if(n%i==0)
			{
			a = 0;
			break;
			}	 
	
		} if(a==0) printf("n khong phai SNT");
		else	printf("n la SNT");
	}
	return 0;
}

n= 2 thì ko vòng lặp nào chạy , a=1 -> n là số nguyên tố đúng rồi chứ bạn

Ban đầu i = 2, thay số vào thì 2 < 2 out đúng rồi. Điều kiện luôn được kiểm tra trước khi chạy.

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