说不上来的不对劲,不知道咋改?

/*编写函数判断一个数是否是素数。
并将实验2的哥德巴赫问题调用该函数完成。*/
#include <iostream>

using namespace std;
int IsPrime(int n)
{
    for(int i=2;i<=n;i++)
    {
        {if(n%i==0);
        break;}
         if(i==n)
         return true;
         else
        return false;

    }

}
int gdbh(int n)
{
    int j,k;
    for( j=2;j<=n/2;j++)
    {if(IsPrime(j));
    return j;}
    for(k=2;k<=n;k++)
    {
       if(IsPrime(k));
    return k;
    }
    if(k==n-j)
    cout<<n<<"="<<j<<"+"<<k<<endl;

}


int main()
{
    int n;
    cin>>n;
    if(!IsPrime(n))
        cout<<n<<" is not a prime"<<endl;
    gdbh(n);
}


输入
10
输出
10 is not a prime!
10=3+7
10=5+5

对照着看改动吧

/*编写函数判断一个数是否是素数。
并将实验2的哥德巴赫问题调用该函数完成。*/
#include <iostream>
 
using namespace std;
int IsPrime(int n)
{
    int i;
    for(i=2;i<=n;i++)
    {
        if(n%i==0){
        break;}
    }
    if(i==n)
         return true;
         else
        return false;
 
}
void gdbh(int n)
{
    int j,k;
    for( j=2;j<=n/2;j++)
    {
        if(IsPrime(j) && IsPrime(n-j)){
            cout<<n<<"="<<j<<"+"<<n-j<<endl;
        }

    }
 
}
 
 
int main()
{
    int n;
    cin>>n;
    if(!IsPrime(n))
        cout<<n<<" is not a prime"<<endl;
    gdbh(n);
}