最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

第八届蓝桥杯CC++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……

IT圈 admin 37浏览 0评论

第八届蓝桥杯C/C++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……

题目:

标题:等差素数列

2,3,5,7,11,13,…是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。

2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果!

有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:

长度为10的等差素数列,其公差最小值是多少?

注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。

思路:

  1. 首先要建立一个检验素数的函数,如果是素数返回1,不是返回0。
  2. 其次确定一个寻找素数的范围,我这里设定的是1~10000,然后设定一个公差的范围,我这里设置的是1~10000。(这个范围是可以输出正确的结果的)
  3. 使用两层for循环嵌套一下即可。
  4. 这里有一个问题,就是如果设定的素数范围不够或者公差范围不够的办法,这个其实很好解决,直接把输出和return 0;放在循环里就可以了,如果有结果就输出,没有结果就说明范围不够,重新更改一下范围就好了。

代码:

(使用clang++编译通过)

#include<iostream>
using namespace std;
int isPrime(int n)
{for(int i=n-1;i>1;i--){if(n%i==0)return 0;}return 1;
}
int main()
{int i,j;for(i=1;i<10000;i++){for(j=1;j<1000;j++){if(isPrime(i)&&isPrime(i+j)&&isPrime(i+2*j)&&isPrime(i+3*j)&&isPrime(i+4*j)&&isPrime(i+5*j)&&isPrime(i+6*j)&&isPrime(i+7*j)&&isPrime(i+8*j)&&isPrime(i+9*j)){cout<<j<<endl;return 0;}}}return 0;
}

结果为210

第八届蓝桥杯C/C++省赛题:2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30……

题目:

标题:等差素数列

2,3,5,7,11,13,…是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。

2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果!

有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:

长度为10的等差素数列,其公差最小值是多少?

注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。

思路:

  1. 首先要建立一个检验素数的函数,如果是素数返回1,不是返回0。
  2. 其次确定一个寻找素数的范围,我这里设定的是1~10000,然后设定一个公差的范围,我这里设置的是1~10000。(这个范围是可以输出正确的结果的)
  3. 使用两层for循环嵌套一下即可。
  4. 这里有一个问题,就是如果设定的素数范围不够或者公差范围不够的办法,这个其实很好解决,直接把输出和return 0;放在循环里就可以了,如果有结果就输出,没有结果就说明范围不够,重新更改一下范围就好了。

代码:

(使用clang++编译通过)

#include<iostream>
using namespace std;
int isPrime(int n)
{for(int i=n-1;i>1;i--){if(n%i==0)return 0;}return 1;
}
int main()
{int i,j;for(i=1;i<10000;i++){for(j=1;j<1000;j++){if(isPrime(i)&&isPrime(i+j)&&isPrime(i+2*j)&&isPrime(i+3*j)&&isPrime(i+4*j)&&isPrime(i+5*j)&&isPrime(i+6*j)&&isPrime(i+7*j)&&isPrime(i+8*j)&&isPrime(i+9*j)){cout<<j<<endl;return 0;}}}return 0;
}

结果为210

发布评论

评论列表 (0)

  1. 暂无评论