#include using namespace std; int main() { unsigned int n; cin >> n; for (int i = 2; n != 1; i++) //Всички възможни делители (множители) на n 2,3,4,5,..., { // Проверяваме дали числото е просто (понеже ни интересуват само прости множители) bool isPrime = true; double temp = sqrt(i); for (int j = 2; j <= temp; j++) { if (i % j == 0) { isPrime = false; break; } } if (!isPrime) continue; //Ако не е просто - не ни интересува това число. Преминаваме към следващото. // Щом сме стигнали тук, сме убедени, че i е просто число. // Искаме да видим колко пъти i дели n. int pow = 0; while (n % i == 0) { n /= i; pow++; } if (pow != 0) //Ако поне веднъж го е разделило - значи участва в разбиването на прости множители. cout << i << "^" << pow << " "; } }