using
System;
using
System.Collections.Generic;
class
GFG
{
public
class
primeFactorization
{
public
int
countOfPf, primeFactor;
public
primeFactorization(
int
countOfPf,
int
primeFactor)
{
this
.countOfPf = countOfPf;
this
.primeFactor = primeFactor;
}
}
static
void
generateDivisors(
int
curIndex,
int
curDivisor,
List<primeFactorization> arr)
{
if
(curIndex == arr.Count)
{
Console.Write(curDivisor +
" "
);
return
;
}
for
(
int
i = 0; i <= arr[curIndex].countOfPf; ++i)
{
generateDivisors(curIndex + 1, curDivisor, arr);
curDivisor *= arr[curIndex].primeFactor;
}
}
static
void
findDivisors(
int
n)
{
List<primeFactorization> arr =
new
List<primeFactorization>();
for
(
int
i = 2; i * i <= n; ++i)
{
if
(n % i == 0)
{
int
count = 0;
while
(n % i == 0)
{
n /= i;
count += 1;
}
arr.Add(
new
primeFactorization(count, i ));
}
}
if
(n > 1)
{
arr.Add(
new
primeFactorization( 1, n ));
}
int
curIndex = 0, curDivisor = 1;
generateDivisors(curIndex, curDivisor, arr);
}
public
static
void
Main(String []args)
{
int
n = 6;
findDivisors(n);
}
}