问题:程序没有出错,但是没有输出结果

目的:4. 编写程序验证哥德巴赫猜想:一个不小于4的偶数,可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7,……。在主函数中输入一个不小于4的偶数n,程序运行后输出以下形式的结果:
若输入34,则程序输出为:
34 = 3+31
34 = 5+29
34 = 11+23
34 = 17+17

问题:程序没有出错,但是没有输出结果

#include
#include
#include
int prime(int n);
int prime(int n)
{
    int p;
    if(n<4||n%2==1) printf("请重新输入一个整数");
    for(p=2;p<=n/2;p++)
    { 
       if(n%p==0) break;
    if(p>n/2) printf("%d=%d+%d",n,p,n-p);
    }
    return 0;
}
int main()
{
    int n;
    printf("请输入:\n");
    scanf_s("%d",&n);
    prime(n);
    system("pause");
    return 0;
}


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

int isprime(int n)
{
    int p;
    for (p = 2; p <= n / 2; p++)
    {
        if (n % p == 0)
            return 0;
    }

    return 1;
}
int main()
{
    int n;
    printf("请输入:\n");
    scanf("%d", &n);
    for (int i = 2; i < n; i++)
    {
        if (isprime(i) && isprime(n - i) && i <= n - i)
            printf("%d=%d+%d\n", n, i, n - i);
    }

    system("pause");
    return 0;
}

break改成continue
你这第一遍循环就退出了



#include <stdio.h>
int prime(int n)
{
    int p;
    for (p = 2; p <= n / 2; p++)
    {
        if (n % p == 0)
            break;
    }
    return p > n / 2;
}

void ge(int n) //
{
    int p;
    if (n < 4 || n % 2 == 1)
    {
        printf("请重新输入一个整数");
        return; //
    }
    for (p = 3; p <= n / 2; p++)
    {
        if (prime(p) && prime(n - p))
            printf("%d=%d+%d\n", n, p, n - p);       
    }

    // return 0;
}
int main()
{
    int n;
    printf("请输入:\n");
    scanf_s("%d", &n);
    //prime(n);
    ge(n);
    system("pause");
    return 0;
}