#include <stdio.h>
#include <math.h>

int isPrime(int n) {
	if (n == 1 || n == 2 || n == 3)
		return 1;
	if (n % 2 == 0 || n % 3 == 0)
		return 0;
	int sqrt_n = (int)sqrt((double)n);
	int k = -1;
	do {
		k += 6;
		if (n % k == 0 || n % (k + 2) == 0)
			break;
	} while (k < sqrt_n);
	return k > sqrt_n;
}

int main() {
	int n,i;
	printf ("nhap so n: ");
	scanf ("%d",&n);
	printf ("cac thua so nto: ");
	for (i = 2; i <= n; i++) {
		if (n % i == 0 && isPrime(i)) {
			printf("\n%d", i);
			n = n / i;
		}
	}
	return 0;
}
