注:梅森素数,数组表示的是2^n-1的n,指数。
#include <stdio.h> #include <math.h> const int maxn = 40; const int MOD = 1e9+7; typedef long long ll; int a[45] = {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}; int main(int argc, char const *argv[]) { int n; scanf("%d",&n); n--; int tmp = a[n]; tmp--; ll ans = 1; for(int i=0;i<tmp;i++) ans = ans*2 %MOD; ans--; printf("%I64d\n", ans); return 0; }
时间: 2024-10-08 11:33:49