Consider the following equation:
where sign [a] represents the integer part of number a.
Let’s find all integer z (z > 0), for which this equation is unsolvable in positive integers. The phrase “unsolvable in positive integers” means that there are no such positive integers x and y (x, y > 0), for which the given above equation holds.
Let’s write out all such z in the increasing order: z 1, z 2, z 3, and so on (z i < z i + 1). Your task is: given the number n, find the number z n.
Input
The first line contains a single integer n (1 ≤ n ≤ 40).
Output
Print a single integer — the number z n modulo 1000000007 (109 + 7). It is guaranteed that the answer exists.
Examples
input
1
output
1
input
2
output
3
input
3
output
15
Solution:
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <set>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>
#include <memory.h>
#include <string>
#include <sstream>
using namespace std;
const int md = 1000000007;
int a[40] = {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() {
// freopen("in","r",stdin);
// freopen("out","w",stdout);
int n;
scanf("%d",&n);
int x = 1;
for (int i=1;i<a[n-1];i++) {
x *= 2;
if (x >= md) x -= md;
}
printf("%d\n",(x+md-1) % md);
return 0;
}
Related posts:
Bad Ugly Numbers
Sum of Odd Integers
Expression parsing
Block Towers
Divisors
Cow and Snacks
Jerry's Protest
Intellectual Inquiry
AND Segments
Kay and Snowflake
Game with Chips
Rusty String
New Year and Old Property
PolandBall and White-Red graph
Place Your Ad Here
Matching vs Independent Set
Colorful Bricks
Felicity's Big Secret Revealed
Minimum spanning tree - Prim's algorithm
Ilya and a Colorful Walk
New Year and Ancient Prophecy
Ternary Search
Cards
Maximum Waterfall
Suffix Array
Hiking
New Year and Fireworks
Orac and Medians
Tidying Up
Piet's Palette
T-shirt buying
Yura and Developers