1不是素数,你的函数没有考虑1的情况
在int prime(int m)函数中前边加一句话改成这样
int prime(int m) { int i; if(m < 2) return 0; for(i=2; i<=m/2;i++) if (m%i==0) return 0; return 1;}
很明显,prime()函数有逻辑错误,它把1也判断成素数了。