这代码,怎一个焦字了的? 2022-04-20 21:25 采纳率: 100%
浏览 83
已结题

打算做一个验证哥德巴赫猜想的程序(输入一个偶数,输出这个偶数可以由哪两个素数的和表示)在内层循环中存在问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果#include<stdio.h>

int main()
{
int b,c,d,e;
scanf("%d",&b);
for(c=3;c<b;c+=2)
{
for(d=3;d<=(b-c);d+=2)
{
for(e=2;e<c;e++)
{
if (c%d==0) break;
}
if (e>c-3)
{
if (d%e==0) break;
if (e>d-2)
{
if (b==c+d)
printf("%d=%d+%d\n",b,c,d);
}
}
}
}
}
输入20时,出现20=11+9;同理输入26,出现26=17+9;在第二个位置上会出现非素数“9"

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-04-20 21:58
    关注

    供参考:

    #include <stdio.h>
    int  isPrime(int n)
    {
        int i;
        if (n <= 3)  return n > 1;
        for (i = 2; i * i <= n; i++)
            if (n % i == 0) return 0;
        return 1;
    }
    int main()
    {
        int i, n;
        while (scanf("%d", &n) == 1 && n > 0) // 输入 <= 0 时,结束输入
        {
            for (i = 2; i <= n / 2; i++) {
                if (isPrime(i) && isPrime(n - i))
                {
                    printf("%-d=%-d+%-d\n", n, i, n - i);//输出
                    break;
                }
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加