Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 05 / Task 2.cpp
diff options
context:
space:
mode:
Commit7881119e0914b9207568918fcf868eea84ef3d78 (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-28 01:45:44 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-28 01:45:44 +0200
Filesab70701506971ec44b9aab9ba00ad9525b8da0e5 /Sem. 05/Task 2.cpp
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.tar
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.tar.gz
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.zip
Parente5646c51794632f5816c00f4d1e7933ea7dcbbc0 (diff)
sem 8
1 files changed, 39 insertions, 0 deletions
-rw-r--r--Sem. 05/Task 2.cpp39
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