证明哥德巴赫猜想,超时,代码该怎样改进?


#include <iostream>
using namespace std;
int Judge(int q)
{
    int i,p=0;
    for(i=2;i<q/2;i++)
        {
            if(q%i==0)
            {
                p++;
            }
        }
    return p;
}
int main()
{
    int N,i,j,m,n;
    cin>>N;
    for(i=2;i<=N/2;i++)
    {
        m=Judge(i);
        n=Judge(N-i);
        if(m==0&&n==0)
        {
            cout<<N<<" = "<<i<<" + "<<N-i;
            return 0;
        }
    }
    return 0;

}

img

 
#include <iostream>
using namespace std;
int Judge(int q)
{
    int i,p=0;
    for(i=2;i*i<=q;i++)
        {
            if(q%i==0)
            {
                p++;
            }
        }
    return p;
}
int main()
{
    int N,i,j,m,n;
    cin>>N;
    for(i=2;i<=N/2;i++)
    {
        m=Judge(i);
        n=Judge(N-i);
        if(m==0&&n==0)
        {
            cout<<N<<" = "<<i<<" + "<<N-i;
            return 0;
        }
    }
    return 0;
}

这样你看看行吗