import
java.util.*;
class
GFG
{
public
static
Vector<Integer> findFactors(
int
n,
int
k)
{
Vector<Integer> factors =
new
Vector<Integer>();
for
(
int
i =
1
; i <= Math.sqrt(k); i++)
{
if
(k % i ==
0
)
{
if
(k / i == i && i <= n)
factors.add(i);
else
{
if
(i <= n)
factors.add(i);
if
(k / i <= n)
factors.add(k / i);
}
}
}
return
factors;
}
public
static
Vector<Integer> findDigitSum(Vector<Integer> a)
{
for
(
int
i =
0
; i < a.size(); i++)
{
int
c =
0
;
while
(a.get(i) >
0
)
{
c += (a.get(i) %
10
);
a.set(i,(a.get(i)/
10
));
}
a.set(i,c);
}
return
a;
}
public
static
int
findMMaxDistinctDigitSum(Vector<Integer> distinctDigitSum,
int
m)
{
int
sum =
0
;
for
(
int
i = distinctDigitSum.size() -
1
;
i >=
0
&& m >
0
;i--, m--)
sum += distinctDigitSum.get(i);
return
sum;
}
public
static
int
findDistinctMnumbers(
int
n,
int
k,
int
m)
{
Vector<Integer> factors = findFactors(n, k);
Vector<Integer> digitSum = findDigitSum(factors);
Collections.sort(digitSum);
HashSet<Integer> hs1 =
new
HashSet<Integer>(digitSum);
Vector<Integer> vect2 =
new
Vector<Integer>(hs1);
return
findMMaxDistinctDigitSum(vect2, m);
}
public
static
void
main(String args[])
{
int
n =
100
, k =
80
, m =
4
;
System.out.println(findDistinctMnumbers(n, k, m));
}
}