c++编程:将1,2,3,4..20这20个连续自然数排成一圈,使任意两个相邻自然数之和均为素数.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 07:26:47
c++编程:将1,2,3,4..20这20个连续自然数排成一圈,使任意两个相邻自然数之和均为素数.
尽量使程序执行效率高
尽量使程序执行效率高
要使效率高,那就不能用递归函数,而要自己去迭代.
#include "stdio.h"
void main()
{
//设一个查找表,可以快速地判断某数是否为素数
bool prime[40]={
0,0,1,1,0,1,0,1,0,0,
0,1,0,1,0,0,0,1,0,1,
0,0,0,1,0,0,0,0,0,1,
0,1,0,0,0,0,0,1,0,0
};
//快速判断哪些数已经被选中
bool used[21]={0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//a[0]无用,a[1]到a[20]分别存放选出的数
//因为考虑到题目要求的循环性
//所有的解都可以位移使得1出现在a[1]位置
//所以我们就直接规定1放在a[1]
int a[21]={0,1};
//已经选中的数的个数,
int cnt=1;
//当发生无数可选的情况时,需要回退一步
//此变量用来表示是否发生了回退
bool tag=false;
int i;
while(cnt
#include "stdio.h"
void main()
{
//设一个查找表,可以快速地判断某数是否为素数
bool prime[40]={
0,0,1,1,0,1,0,1,0,0,
0,1,0,1,0,0,0,1,0,1,
0,0,0,1,0,0,0,0,0,1,
0,1,0,0,0,0,0,1,0,0
};
//快速判断哪些数已经被选中
bool used[21]={0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//a[0]无用,a[1]到a[20]分别存放选出的数
//因为考虑到题目要求的循环性
//所有的解都可以位移使得1出现在a[1]位置
//所以我们就直接规定1放在a[1]
int a[21]={0,1};
//已经选中的数的个数,
int cnt=1;
//当发生无数可选的情况时,需要回退一步
//此变量用来表示是否发生了回退
bool tag=false;
int i;
while(cnt
c++编程:将1,2,3,4..20这20个连续自然数排成一圈,使任意两个相邻自然数之和均为素数.
把1~20这20个自然数排成一圈,使任意两个相邻数的和是质数.
巧排数字 C语言将1、2、...、20这20个数排成一排,使得相邻的两个数之和为一个素数,且首尾两数字之和也为一个素数.
试将1至100这100个自然数排成一排,那么,任意相邻三个数之和中,至多有多少个奇数?至少有多少个奇数?
c语言编程:找出自然数中第20个素数
请将1,2,3,…,99,100这一百个自然数中既是奇数又是合数的自然数排成一行,使每两个相邻的数都不互质(若一行写不下
从连续的49个自然数1—49中挑出若干个数排成一圈,使相邻的任两个数的乘积都小于100,最多能挑出多少个数?
1至100这100个自然数排成一排,那么,任意相邻三个数之和中,至多有多少个奇数?至少有多少个奇数?
2个连续自然数的倒数之和是9/20,这2个数各为多少?
从连续的49个自然数1~49中,挑出若干个数排成一个圆圈,使相邻的任意两个数的乘积都小于100,最多能挑出( )个数来
将(1+2+3+...+n)+2002表示为若干个连续自然数之和,共有多少种不同的表示方法?
一道数学题:成一圈,使任意两个相邻数字的差等于2或3?能否把1~10这十个数排成一圈使任意两个相邻数字差