C程序问题,未报错,但运行时只显示了一部分。。。。。

验证4~100中的偶数(包括1和100)是否可以由两个质数相加得到,并且把所有表达式列出。
运用了for循环语句嵌套,if语句判断是否为质数,但是运行只从46开始.. T^T,大神告诉我我哪里错了
程序截图图片说明
显示结果:从46开始了图片说明

看到这个程序名我也是被震到了,居然这么厉害,还是中文的,我决定看看你的代码……

图片说明

你把输出语句拿到循环的外边,应该差不多

哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和,而且肯定是两个奇素数,因为偶素数只有一个。所以你这个代码可以优化,能够降低很多没哟必要的判断。此外,建议将判断素数的部分拿出来做一个子函数。最后,正常应该是从6开始输出的6=3+3。

#include
#include

int main()
{
int b,c,e,i,f,g;
for (i=4; i<=100; i+=2)
{
for (f=2; f<=i/2; f++)
{
e = 0;
for (b=2; b<f; b++)
{
if (f%b == 0)
{
e = 1;
break;

}

}

        if (e == 0)
        {
           g = 0;
           c = i - f;
           for (b=2; b<c; b++)
           {
               if (c%b == 0)
               {
                  g = 1;
                  break;
               }    


           }      
        }
        if (g == 0)
        {
            printf("%d=%d+%d\n", i, f, c);   
            break;   
        }
    }
}

system("pause");

return 0;

}


 #include <stdio.h>
#include <stdlib.h> 

int main()
{
    int b,c,e,i,f,g;
    for (i=4; i<=100; i+=2)
    {
        for (f=2; f<=i/2; f++)
        {
            e = 0;
            for (b=2; b<f; b++)
            {
                if (f%b == 0)
                {
                   e = 1;
                   break;        
                }   
            }    

            if (e == 0)
            {
               g = 0;
               c = i - f;
               for (b=2; b<c; b++)
               {
                   if (c%b == 0)
                   {
                      g = 1;
                      break;
                   }    


               }      
            }
            if (g == 0)
            {
                printf("%d=%d+%d\n", i, f, c);   
                break;   
            }
        }
    }

    system("pause");

    return 0;
}