ymf200901 2022-03-27 14:16 采纳率: 100%
浏览 94
已结题

哥德巴赫猜想的所有解

求出哥德巴赫猜想的所有解(将一个大于9的奇数拆分成三个素数之和),并按从小到大的顺序写出。
输入格式
一行,一个大于9的奇数。

输出格式
第一行,一个整数N,表示解的总数。 第2-N+1行,每行一个解。
输入数据 1
15
输出数据 1
3
15=2+2+11
15=3+5+7
15=5+5+5
(运用二维数组的方法)

  • 写回答

2条回答 默认 最新

  • 关注

    双层for循环遍历即可,如果能找到3个奇数就输出。代码如下:

    img

    #include <iostream>
    using namespace std;
    
    //判断素数
    int isprime(int n)
    {
        if(n<2)
            return 0;
        for(int i=2;i<n;i++)
        {
            if(n%i==0)
                return 0;
        }
        return 1;
    }
    
    int main()
    {
        int i,j,n;
        int a[100][3];
        int t = 0;
        cin >> n;
        for(i=2;i<n ;i++)
        {
            if(isprime(i))
            {
                for(j=i;j<n;j++)
                {
                    if(isprime(j) && isprime(n-i-j) && (n-i-j)>=j)
                    {
                        a[t][0] = i;
                        a[t][1] = j;
                        a[t][2] = n-i-j;
                        t++;
                    }
                        
                }
            }
            
        }
        //输出
        cout << t<<endl;
        for (i=0;i<t;i++)
        {
            if(i<t-1)
                cout << n <<"="<<a[i][0]<<"+"<<a[i][1]<<"+"<<a[i][2]<<endl;
            else
                cout << n <<"="<<a[i][0]<<"+"<<a[i][1]<<"+"<<a[i][2];
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改