全村的希望· 2023-07-27 12:25 采纳率: 89.5%
浏览 3
已结题

书上的一道c语言的例题

编写程序,验证任意一个偶数为两个素数之和,并输出这两个素数。

#include <stdio.h>
int isprime(int);
void even(int);
int main()
{
    int a;
    printf("Enter a even numner:");
    scanf("%d",&a);
    if(a % 2 == 0) even(a);
    else printf("The %d isn't even number\n'",a);
}
void even(int x)
{
    int i;
    for(i = 2;i <= x/2;i++)
        if(isprime(i))
            if(isprime(x-i))
            {
                printf("%d = %d+%d\n",x,i,x-i);
                return;
            }
}
int isprime(int a)
{
    int i;
    for(i = 2;i <= a/2;i++)
        if(a % i == 0)
        return 0;
    return 1;
}

以上是书上给出的代码但是我在计算和运行后发现这个代码如果输入0或者2的话会没有任何输出内容,0和2在c中不是偶数吗

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-07-27 12:37
    关注

    0和2是偶数
    但是它们没法表达成两个素数的和,因为最小的素数是2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题