m0_53989813
2021-08-13 21:21
采纳率: 82.4%
浏览 17

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


#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;

}
  • 收藏

1条回答 默认 最新

  • 吴迦诺 2021-08-13 21:38
    已采纳

    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;
    }
    
    

    这样你看看行吗

    已采纳该答案
    1 打赏 评论

相关推荐 更多相似问题