2734: 哥德巴赫猜想区间验证
金币值:0
定数:1
时间限制:1.000 s
内存限制:128 M
解决:1
提交:1
正确率:100.00% 命题人:
题目描述
哥德巴赫猜想是数论中的一个著名未解问题,其表述为:任何一个不小于6的偶数都可以表示为两个奇素数之和。
请完成以下任务:
-
实现一个判断素数的简单函数int prime(int p)
-
实现一个函数void Goldbach(int n),将偶数n表示为两个素数之和,且必须输出所有解中p最小的解
-
输入一个区间[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最小的解。
其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q且p、q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。