第7、8行交换一下顺序。
m还没输入呢,你就开根号啊
解决没?
因为k是个浮点数,你应该是没正确处理
而且确实
#include <stdio.h>
#include <math.h>
int main()
{
int n, i;
scanf("%d", &n);
double m = sqrt(n);
printf("%f\n", m);
for (i = 2; i < ((int)m + 1); i++)
{
if (!(n % i))
{
printf("%d\n", i);
break;
}
}
if (i == ((int)m + 1))
printf("prime");
else
printf("not prime");
}