哥德巴赫猜想循环问题请教

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

验证哥德巴赫猜想,最后运行的结果中一个偶数反复循环,把所有质数相加为偶数的情况都列出来了,如何使得一个偶数只循环一回,出现质数相加问题就进行下个偶数循环

#include <iostream>
using namespace std;
int main()
{
    int ou;
    for (ou = 4; ou <= 200; ou = ou + 2)
    {
        int a, i;
        for (a = 2; a < 200; a++)
        {
            int d;
            for (i = 2; i < a; i++)
            {
                d = a % i;
                if (d == 0)
                {
                    break;
                }

            }
            if (i == a)
            {

                int a1, i1;
                for (a1 = 2; a1 < 200; a1++)
                {
                    int d1;
                    for (i1 = 2; i1 < a1; i1++)
                    {
                        d1 = a1 % i1;
                        if (d1 == 0)
                        {
                            break;
                        }
                    }
                    if (i1 == a1)//并且偶数==a1+a;则输出偶数==a1+a;
                    {
                        if (ou == a1 + a)
                        {
                            cout << ou << "=" << a1 << "+" << a << endl;
                            break;


                        }
                        
                    }

                }

            }
        }
        
    }


    
}

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

添加一个flag变量,在输出一次后就把flag=1,然后结束本次for循环即可。

代码修改如下:

#include <iostream>
using namespace std;
int main()
{
    int ou;
    int flag = 0;
    for (ou = 4; ou <= 200; ou = ou + 2)
    {
        int a, i;
        flag = 0;
        for (a = 2; a < 200; a++)
        {
            int d;
            for (i = 2; i < a; i++)
            {
                d = a % i;
                if (d == 0)
                {
                    break;
                }

            }
            if (i == a)
            {

                int a1, i1;
                for (a1 = 2; a1 < 200; a1++)
                {
                    int d1;
                    for (i1 = 2; i1 < a1; i1++)
                    {
                        d1 = a1 % i1;
                        if (d1 == 0)
                        {
                            break;
                        }
                    }
                    if (i1 == a1)//并且偶数==a1+a;则输出偶数==a1+a;
                    {
                        if (ou == a1 + a)
                        {
                            cout << ou << "=" << a1 << "+" << a << endl;
                            flag = 1;
                            break;
                        }

                    }

                }
                if (flag == 1)
                    break;

            }
        }

    }



}


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632