为什么输出不了?是死循环了吗?


#include<stdio.h>
int prime( int p );
int main()
{
    int l,k,j,x1,x2;
    for(l=4;l<=100;l++)
    {
        while(l%2==0)
        {
            for(x1=2;x1<=l;x1++)
            {
                x2=l-x1;
            }
            if(prime(x1)!=0&&prime(x2)!=0)
            printf("%d=%d+%d\n",l,x1,x2);
        }
    }
} 
int prime( int p )
{
    int i;
    if(p<=1){
    return 0;
    }
    else if(p==2){
    return 1;
    }
    else 
    {
    for(i=2;i<p;i++)
    {
        if(p%i==0)
        {
          return 0;
        }    
    }
    return 1;
    }
}

img


#include <stdio.h>
int prime(int p);
int main()
{
    int l, k, j, x1, x2;
    for (l = 4; l <= 100; l++)
    {
        if (l % 2 == 0)
        {
            for (x1 = 2; x1 <= l; x1++)
            {
                x2 = l - x1;
                if (prime(x1) != 0 && prime(x2) != 0){
                    printf("%d=%d+%d\n", l, x1, x2);
                    break;
                }
            }
        }
    }
}
int prime(int p)
{
    int i;
    if (p <= 1)
    {
        return 0;
    }
    else if (p == 2)
    {
        return 1;
    }
    else
    {
        for (i = 2; i < p; i++)
        {
            if (p % i == 0)
            {
                return 0;
            }
        }
        return 1;
    }
}