Giải thích giúp hai dòng lệnh if

Ai giải thích giúp mình hai dòng lệnh if đc ko

#include <iostream> 
using namespace std; 
int main () 
{
   int i, j; 
   for(i=2; i<50; i++) { 
      for(j=2; j <= (i/j); j++) 
         if(!(i%j)) break; // neu tim thay he so, thi khong la so nguyen to 
         if(j > (i/j)) cout << i << " la so nguyen to\n"; 
   } 
return 0; 
}

!not
i%jmodulo
i/j là i chia cho j

2 Likes
  1. 0 là falsy nên !0 là truthy, hay i % j == 0 là điều kiện thoát.
  2. Điều kiện này ngược hoàn toàn với điều kiện duy trì vòng lặp, nói cách khác là nếu đã break thì không in ra câu thông báo.

Thực ra nên viết lại là cout xong mới break.

2 Likes

Nên tránh học theo cách viết code đánh đố thế này.

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