菜喵一只 2023-10-15 15:38 采纳率: 60%
浏览 10
已结题

C++哥德巴赫猜想v

哥德巴赫猜想
显示标签
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度:入门
出题人:

描述

哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。

输入描述
(无)

输出描述
分行输出:

例如:

6=3+3

8=3+5

(每个数只拆开一次,请保证第一个加数最小)

样例输入 1

(无)
样例输出 1

(无)

  • 写回答

2条回答 默认 最新

  • 柯本 2023-10-15 16:20
    关注

    程序参考

    #include <cmath>
    #include <iostream>
    using namespace std;
    int prime(int n)
    {
      int i, k;
      k = (int)sqrt((double)n); //提高效率
      if (n < 2)                // 2以下不能是素数
        return 0;
      for (i = 2; i <= k; i++)
        {
          if (n % i == 0)
            return 0;
        }
      return 1;
    }
    int main(void) //哥德巴赫猜想
    {
      int i, j;
      const int n = 100;
      for (i = 6; i <= n; i += 2)
        for (j = 2; j < i; j++)
          if (prime(j) && prime(i - j))
            {
              cout << i << "=" << j << "+" << i - j << endl;
              break;
            }
      return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月15日