Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <ctime>
- #include <vector>
- #include <algorithm>
- #include <string>
- using namespace std;
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- srand(time(NULL));
- system("color 0A");
- vector<short> box(1u + rand() % 10u);
- auto filler = []()
- {
- return -1000 + rand() % (2001);
- };
- generate(box.begin(), box.end(), filler);
- cout << "Исходная последовательность чисел" << endl;
- for (const auto &value : box)
- {
- cout << value << endl;
- }
- cout << "Разложение чисел с суммой цифр кратной 7" << endl;
- cout << endl;
- auto flag2 = false;
- auto flag3 = true;
- auto flag4 = true;
- for (auto &value : box)
- {
- string svalue = to_string(value);
- size_t sum = 0u;
- for (const auto &c : svalue)
- {
- sum += c == '-' ? 0u : c - '0';
- }
- if (!(sum % 7u))
- {
- flag2 = true;
- auto flag = value > 0;
- value = flag ? value : -value;
- if (value == 0 || abs(value) == 1)
- {
- cout << value << endl << endl;
- continue;
- }
- for (;;)
- {
- if (flag3)
- {
- flag3 = false;
- cout << (flag ? value : -value);
- cout << " = ";
- }
- else
- {
- cout << " * ";
- }
- for (int u = 2u; u <= value; ++u)
- {
- if (!(value % u))
- {
- if (!flag && flag4)
- {
- flag4 = false;
- cout << -u;
- }
- else
- {
- cout << u;
- }
- value /= u;
- break;
- }
- }
- if (value == 1)
- {
- break;
- }
- }
- cout << endl;
- cout << endl;
- }
- flag3 = true;
- flag4 = true;
- }
- cout << (flag2 ? "" : "Таких чисел нет\n");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement