111111111求指错

问题:1) 函数prime(n)的功能是判断正整数n是否为素数;
2) 主函数调用该函数,每行输出10个素数;
3) 判断n是否为素数采用的方法为:若n是素数,则n不能被2~的任何整数整除
代码哪里出错了?:

#include <stdio.h>
#include<math.h>
int main()
{
    int n,sum=0;
    int prime(int );
    printf("请输入:");
    scanf_s("%d",&n);
    printf("小与等与n的素数如下:\n");
    if (n >= 2)
    {
        printf("%4d", 2);sum++;
    }
    for (int i = 3;i<=n;i += 2)
    {
        if (prime(i)== 1)
        {
            printf("%4d", i);
            if (sum!=0 && ++sum%10==0)        
                printf("\n");        
        }
    }
}
int prime(int N)
{
        for (int j = 2;j <= (int)sqrt(N);j++)
        {
            if (N%j == 0)
                return 0;
            else
                return 1;
        }
    }



#include <stdio.h>
#include <math.h>

int prime(int N);

int main()
{
    int n, sum = 0;
    printf("请输入:");
    scanf_s("%d", &n);
    printf("小于等于n的素数如下:\n");

    if (n >= 2)
    {
        printf("%4d", 2);
        sum++;
    }

    for (int i = 3; i <= n; i += 2)
    {
        if (prime(i) == 1)
        {
            printf("%4d", i);
            if (sum != 0 && ++sum % 10 == 0)
                printf("\n");
        }
    }

    return 0;
}

int prime(int N)
{
    for (int j = 2; j <= (int)sqrt(N); j++)
    {
        if (N % j == 0)
            return 0;
    }
    return 1;
}