using
System;
using
System.Collections;
class
GFG{
static
ArrayList get_divisors(
int
A)
{
ArrayList ans =
new
ArrayList();
ans.Add(1);
for
(
int
i = 2;
i <= (
int
)Math.Sqrt(A);
i++)
{
if
(A % i == 0)
{
ans.Add(i);
if
((i * i) != A)
ans.Add(A / i);
}
}
return
ans;
}
static
bool
Sum_Possible(ArrayList
set
,
int
sum)
{
int
n =
set
.Count;
bool
[,]subset =
new
bool
[n + 1, sum + 1];
for
(
int
i = 0; i <= n; i++)
subset[i, 0] =
true
;
for
(
int
i = 1; i <= sum; i++)
subset[0, i] =
false
;
for
(
int
i = 1; i <= n; i++)
{
for
(
int
j = 1; j <= sum; j++)
{
if
(j < (
int
)
set
[i - 1])
subset[i, j] = subset[i - 1, j];
if
(j >= (
int
)
set
[i - 1])
subset[i, j] = subset[i - 1, j] ||
subset[i - 1, j -
(
int
)
set
[i - 1]];
}
}
return
subset[n, sum];
}
static
bool
Is_Practical(
int
A)
{
ArrayList divisors =
new
ArrayList();
divisors = get_divisors(A);
for
(
int
i = 2; i < A; i++)
{
if
(Sum_Possible(divisors, i) ==
false
)
return
false
;
}
return
true
;
}
static
void
print_practica_No(
int
A,
int
B)
{
for
(
int
i = A; i <= B; i++)
{
if
(Is_Practical(i) ==
true
)
{
Console.Write(i +
" "
);
}
}
}
public
static
void
Main(
string
[]args)
{
int
A = 1, B = 100;
print_practica_No(A, B);
}
}