Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 5 / Task 2.cpp
diff options
context:
space:
mode:
Commitf05726d51dd6c41c23c337c2d4b0324ad231dbc8 (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-13 20:45:46 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-13 20:45:46 +0200
Filesce8ee1c313676689342299c4e96c3d199d00370e /Sem. 5/Task 2.cpp
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.tar
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.tar.gz
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.zip
Parent8f4b6b75fd57a34d33bb9dd17af305898a8da81e (diff)
added examples sem 5
1 files changed, 39 insertions, 0 deletions
-rw-r--r--Sem. 5/Task 2.cpp39
diff --git a/Sem. 5/Task 2.cpp b/Sem. 5/Task 2.cpp
new file mode 100644
index 0000000..0f4408d
--- /dev/null
+++ b/Sem. 5/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