这串代码应该怎么理解呢(循环)

#include <math.h>
main( )
{
   int m,i,n=0;
double k;   
for(m=20;m>=10;m=m-1)                
 {
  k=sqrt(m);
  for(i=2;i<=k;i++)
   if(m%i==0) break;
  if(i>k) {printf("%d ",m);break;}
}
}

输出在10到20数字内的质数

第一个for循环作用域是{}之内,第二个for循环作用域是下一行的if,第二个if和这个for是同级