c++:哥德巴赫猜想

问题遇到的现象和发生背景

哥德巴赫猜想
限制条件
时间限制: 1000 ms, 空间限制: 256 MB

题目描述
输入一个偶数N(N<=10000) ,验证 4~N所有偶数是否符合哥德巴赫猜想:任一大于




2的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如 10,10=3+7=5+5,则 10=5+5 是错误答案。

输入格式
第一行,输入一个偶数N(N<=10000) 。

输出格式
输出若干行,格式为N=x+y 。

样例
样例输入1  
10
样例输出2
4=2+2
6=3+3
8=3+5
10=3+7
###### 用代码块功能插入代码,请勿粘贴截图 

```c++
#include
using namespace std;
bool isPrime(long long n)
{
    if(n==1)return 0;
    for(int i=2;i*i<=n;i++)if(n%i==0)return 0;
    return 1;
}
int main()
{
    long long n,prime=3;
    cin>>n;
    for(long long i=4;i<=n;i+=2)
    {
        prime=2;
        bool yn=1;
        for(;prime<=n/2;prime++)
        {
            if(isPrime(prime))
            {
                if(isPrime(i-prime) && yn)
                {
                    printf("%lld+%lld=%lld\n",prime,i-prime,i);
                    yn=0;
                }
            }
        }
    }
    return 0;

运行结果及报错内容

无报错,样例通过,0分。

我想要达到的结果

满分,求大家帮忙。


#include<bits/stdc++.h>
using namespace std;
int n;
bool isprime(int m){
    if(m<=1) return false;
    for(int i=2;i<=sqrt(m);i++)if(m%i==0)return false;
    return true;
}
void divide(int n){
   int j;
   for(int i=2;i<n;i++){
      if(!isprime(i))continue;
      j=n-i;
      if(!isprime(j))continue;
        cout<<n<<"="<<i<<"+"<<j<<endl;
        break;
   }
}
int main(){
   cin>>n;
   if(n<=2)return 0;
   for(int i=4;i<=n;i+=2)divide(i);
   return 0;
}