c/c++质数判断(从一篇很久很久以前的blog上找的代码)

实在搞不明白为啥
//用if(i>=m) return 1;是错误的 ,
(代入具体数字跑了好几遍都没问题)

int prime(int m)
{
    int i;
    if(m==0) return 0;
    if(m==1) return 0;//考虑0和1的情况
    for(i=2;i<m;i++)//没有等号 
    if (m%i==0) break;
    if(i<m) return 0;//用if(i>=m) return 1;是错误的 
    else return 1;
 } 

不可能啊,你把修改之后的完整代码和运行结果发出来

你这段代码是没有错的,可以那样写,不然就是其他代码错误

我这里把你这份改了一下,顺便优化了下,你看看,重新改了下

int prime(int m)
{
    if(m==0||m==1) return 0;
    for(int i=2;i<=sqrt(m);i++){//一个数因数除了本身,否则再开这个值开根号往后的位置都不可能找到它的因数
        if (m%i==0) return 0;//中间出现可以整除的就是说明它不是质数
    }
    return 1;//到这里就说明它没给整除过是个质数
}