What are you talking about ?
问题出在
int k=(int)sqrt(m);
sqrt(m)的值极有可能是double型(比如sqrt(3)),你却将之转换为int型。double的数据占据8个字节,而int型只占据4个字节,将double变量转换为int变量,那么double的4个字节存储的数据就会丢失,而剩下的数据是未知的。有可能是0,那么后面的代码就无法运行了,自然得不到想要的结果。