题目大意:输出T个第ni(i=1,2,3,...,T)个梅森素数的指数。
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
数据规模:T为整数,1<=N<=38。
理论基础:梅森素数:2^n-1的素数(n为正整数)。这里n即为所谓的梅森素数的指数。
前42个梅森素数的指数:
2,3,5,7,13,17,19,31,61,89,107,127,521,607,1279,2203,2281,3217,4253,4423,9689,
9941,11213,19937,21701,23209,44497,86243,110503,132049,216091,756839,859433,
1257787,1398269,2976221,3021377,6972593,13466917,20996011,24036583,25964951。
题目分析:表都给你了,还分析个毛线!!!
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
const int x[]={0,2,3,5,7,13,17,19,31,61,89,
107,127,521,607,1279,2203,2281,3217,4253,4423,
9689,9941,11213,19937,21701,23209,44497,86243,110503,132049,
216091,756839,859433,1257787,1398269,2976221,3021377,6972593};
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
printf("%d\n",x[n]);
}
return 0;
}
唉。。。自己其实也可以先跑出来答案,然后打表。不过目测够呛,像这种找到一个数就可以出名的题,让我们找,那还不是让我们打表?只能呵呵了、、、
参考文献:
http://zh.wikipedia.org/wiki/%E6%A2%85%E6%A3%AE%E7%B4%A0%E6%95%B0
by:Jsun_moon http://blog.csdn.net/jsun_moon