C++判断素数问题,如何加入判断负数和零的程序

之前输入负数和零但是判断出来是素数,加了代码之后程序错误,不知道怎么改

#include
using namespace std;
int main()
{
    int prime(int);
    int n;
    cout << "input an integer:";
    cin >> n;
    if (n > 0);
    {
        if (prime(n))
            cout << n << "is a prime." << endl;
        else
            cout << n << "is not a prime." << endl;
        system("pause");
        return 0;
    }
    else (n <= 0);
    cout << n << "is not a prime." << endl;
}
int prime(int n)
{
    int flag = 1, i;
    for (i = 2; i <=sqrt(n); i++)
        if (n % i == 0)
            flag = 0;
    return(flag);
}

麻烦帮我找出一下错误😂😂,不知道怎么办了,或者教我一下怎么正确写出判断负数和零的代码🙏🏻
这个程序显示出来这样的错误显示

img