Tóm lại là int của bạn là bao nhiêu bit ? 32 hay 64 ?
Nếu là 32 bit thì bạn cũng ko hiểu ý mình nazMình nói là phép dịch phải với số bit >= 32 sẽ có dạng như thế này
n >> 32 == n>>1
n >> 33 == n>>2
Tức là cái biến vt của bạn sẽ được break ở 1 giá trị lớn hơn 32 , ok ?
Bạn cứ lồng 1 lệnh cout vào vòng lặp for của bạn, tại cái vị trí mà có break ấy, in giá trị vt ra, bạn sẽ thấy tại sao