请问这种判断是否为素数的原理是什么呢

#include<stdio.h>
#include<math.h>
int main()
{
    int i,k,n,m;
    scanf("%d",&m);
    k=sqrt(m);
    for(i=2;i<=k;i++)
    if(m%i==0)break;
    if(i>k)
    printf("%d是素数",m);
}

取对立面,只要能被一个数整除,那就一定不是素数,所以只要是break退出循环的,那就一定不是素数