using
System;
using
System.Collections.Generic;
using
System.Linq;
class
GFG
{
static
List<
int
> Divisors(
int
n)
{
List<
int
> l =
new
List<
int
>();
for
(
int
i = 1; i <= n; i++) {
if
(n % i == 0) {
l.Add(i);
}
}
return
l;
}
static
bool
PowerSet(
int
[] arr,
int
n,
int
s)
{
List<
string
> list =
new
List<
string
>();
for
(
int
i = 0; i < (1 << n); i++) {
System.Text.StringBuilder subset
=
new
System.Text.StringBuilder();
for
(
int
j = 0; j < n; j++) {
if
((i & (1 << j)) != 0) {
subset.Append(arr[j]).Append(
"|"
);
}
}
if
(!list.Contains(subset.ToString())
&& subset.Length > 0) {
list.Add(subset.ToString());
}
}
foreach
(
string
subset
in
list)
{
int
sum = 0;
string
[] strArr = subset.Split(
'|'
);
foreach
(
string
str
in
strArr)
{
if
(str.Length > 0)
sum +=
int
.Parse(str);
}
if
(sum == s) {
return
true
;
}
}
return
false
;
}
static
bool
IsZumkeller(
int
n)
{
List<
int
> d = Divisors(n);
int
s = 0;
foreach
(
int
i
in
d) { s += i; }
if
(s % 2 == 0 && d.Max() <= s / 2) {
if
(PowerSet(d.ToArray(), d.Count(), s / 2)) {
return
true
;
}
}
return
false
;
}
static
void
PrintZumkellers(
int
n)
{
int
val = 0;
int
ans = 0;
for
(
int
i = 1; i <= 100000; i++) {
if
(IsZumkeller(i)) {
ans = i;
val++;
if
(val >= n) {
break
;
}
}
}
Console.WriteLine(ans);
}
public
static
void
Main(
string
[] args)
{
int
N = 4;
PrintZumkellers(N);
}
}