为啥判断素数会少了2多了9

求和应该没问题,错误应该在判断素数上,但找不出错误,请问是出了什么问题呢

img

img

img


img

prime的函数是什么样的

int prime(int p)
{
    for(i=2;i<=sqrt(p);i++)
    if(p%i==0) break;
    if(i>sqrt(p)) return 1;
    else return 0;
}

#include <stdio.h>
int main()
{
    int i,n;
    printf("Please input: ");
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
        {
        if(n%i==0){
            break;
        }
}
    if(i>=n)
    {
        printf("This is a prime!\n");
    }
    else
    {
        printf("This is not a prime!\n");
    }
    return 0;
}