diff options
sem 8
1 files changed, 39 insertions, 0 deletions
| -rw-r--r-- | Sem. 05/Task 2.cpp | 39 |
diff --git a/Sem. 05/Task 2.cpp b/Sem. 05/Task 2.cpp new file mode 100644 index 0000000..0f4408d --- /dev/null +++ b/Sem. 05/Task 2.cpp @@ -0,0 +1,39 @@ +#include <iostream> +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 << " "; + } +}
\ No newline at end of file |
