SHAOXIAOJ正在加载中...

2734: 哥德巴赫猜想区间验证

金币值:0 定数:1 时间限制:1.000 s 内存限制:128 M
解决:1 提交:1 正确率:100.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 来源/分类: 函数

题目描述


哥德巴赫猜想是数论中的一个著名未解问题,其表述为:任何一个不小于6的偶数都可以表示为两个奇素数之和。

请完成以下任务:

  1. 实现一个判断素数的简单函数int prime(int p)

  2. 实现一个函数void Goldbach(int n),将偶数n表示为两个素数之和,且必须输出所有解中p最小的解

  3. 输入一个区间[m, n],对于该区间内的所有整数:

    • 如果是素数,则输出"x is a prime number"

    • 如果是偶数(且≥6),则调用Goldbach函数将其表示为两个素数之和

    • 输出时每行最多显示5组分解,不足5组时按实际数量输出


输入

两个大于等于6的整数m和n,表示验证哥德巴赫猜想的区间[m,n]

输出

将m和n之间的偶数表示成两个素数之和,输出时每行显示5组。


样例输入    复制

89 100

样例输出    复制

89 is a prime number
90=7+83
92=3+89
94=5+89
96=7+89
98=19+79
100=3+97

提示

函数定义:  int prime( int p );      void Goldbach( int n );
其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q且p、q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。