等差素数列
2,3,5,7,11,13,....是素数序列。
类似:7,37,67,97,127,157 这样全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。
2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为10的等差素数列,其公差最小值是多少?输出格式
输出一个整数表示答案
#include <stdio.h>
#include <math.h>
//判断是否为素数
int isPrime(int a){
if(a==1 || a==2 || a==3) return 1;
else{
int j = 2;
for(j=2;j<=sqrt(a);j++){
if(a%j==0) return 0;
}
return 1;
}
}
int main(){
int arr[10000] = {0};
int i=0, j=0, index=0, d=0;
//将所有素数存储
for(i=1;i<6000;i++){
if(isPrime(i)==1) arr[index++]=i;
}
//直接枚举
for(i=0;i<index;i++){
for(d=3;d<500;d++){
for(j=0;j<10;j++){
if(isPrime(arr[i]+j*d)) continue;
else break;
}
if(j==10){
printf("%d\n", d);
return 0;
}
}
}
return 0;
}
承压计算
X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。
每块金属原料的外形、尺寸完全一致,但重量不同。
金属材料被严格地堆放成金字塔形。
其中的数字代表金属块的重量(计量单位较大)。(参考输入中的金字塔)
最下一层的X代表30台极高精度的电子秤。
假设每块原料的重量都十分精确地平均落在下方的两个金属块上,
最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。
电子秤的计量单位很小,所以显示的数字很大。
工作人员发现,其中读数最小的电子秤的示数为:2086458231
请你推算出:读数最大的电子秤的示数为多少?输入格式
本题无输入
7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4 7 3 3 1 4 6 4 5 5 8 8 3 2 4 3 1 1 3 3 1 6 6 5 5 4 4 2 9 9 9 2 1 9 1 9 2 9 5 7 9 4 3 3 7 7 9 3 6 1 3 8 8 3 7 3 6 8 1 5 3 9 5 8 3 8 1 8 3 3 8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9 8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4 2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9 7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6 9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3 5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9 6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4 2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4 7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6 1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3 2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8 7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9 7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X输出格式
输出一个整数表示答案
#include <bits/stdc++.h>
using namespace std;
const int N = 31;
double f[N][N];
double a[N][N] = {
{0},{
0,7},{
0,5,8},{
0,7,8,8},{
0,9,2,7,2},{
0,8,1,4,9,1},{
0,8,1,8,8,4,1},{
0,7,9,6,1,4,5,4},{
0,5,6,5,5,6,9,5,6},{
0,5,5,4,7,9,3,5,5,1},{
0,7,5,7,9,7,4,7,3,3,1},{
0,4,6,4,5,5,8,8,3,2,4,3},{
0,1,1,3,3,1,6,6,5,5,4,4,2},{
0,9,9,9,2,1,9,1,9,2,9,5,7,9},{
0,4,3,3,7,7,9,3,6,1,3,8,8,3,7},{
0,3,6,8,1,5,3,9,5,8,3,8,1,8,3,3},{
0,8,3,2,3,3,5,5,8,5,4,2,8,6,7,6,9},{
0,8,1,8,1,8,4,6,2,2,1,7,9,4,2,3,3,4},{
0,2,8,4,2,2,9,9,2,8,3,4,9,6,3,9,4,6,9},{
0,7,9,7,4,9,7,6,6,2,8,9,4,1,8,1,7,2,1,6},{
0,9,2,8,6,4,2,7,9,5,4,1,2,5,1,7,3,9,8,3,3},{
0,5,2,1,6,7,9,3,2,8,9,5,5,6,6,6,2,1,8,7,9,9},{
0,6,7,1,8,8,7,5,3,6,5,4,7,3,4,6,7,8,1,3,2,7,4},{
0,2,2,6,3,5,3,4,9,2,4,5,7,6,6,3,2,7,2,4,8,5,5,4},{
0,7,4,4,5,8,3,3,8,1,8,6,3,2,1,6,2,6,4,6,3,8,2,9,6},{
0,1,2,4,1,3,3,5,3,4,9,6,3,8,6,5,9,1,5,3,2,6,8,8,5,3},{
0,2,2,7,9,3,3,2,8,6,9,8,4,4,9,5,8,2,6,3,4,8,4,9,3,8,8},{
0,7,7,7,9,7,5,2,7,9,2,5,1,9,2,6,5,3,9,3,5,7,3,5,4,2,8,9},{
0,7,7,6,6,8,7,5,5,8,2,4,7,7,4,7,2,6,9,2,1,8,2,9,8,5,7,3,6},{
0,5,9,4,5,5,7,5,5,6,3,5,3,9,5,8,9,5,4,1,2,6,1,4,3,5,3,2,4,1}};
int main(){
for(int i = 1; i <= 29; i ++)
{
for(int j = 1; j <= i;j ++)
{
double t = a[i][j] * 1.0 / 2;
a[i + 1][j] += t;
a[i + 1][j + 1] += t;
}
}
double mi = 0x3f, ma = 0;
for(int i = 1 ; i <= 30 ; i ++)
{
mi = min(a[30][i] , mi);
ma = max(ma , a[30][i]);
}
long long p = ma * (2086458231 * 1.0 / mi);
cout << p << endl;
return 0;
}