Обновить main.cpp

This commit is contained in:
oltnd
2024-11-30 16:50:30 +03:00
parent 595cc38a69
commit a146846660

View File

@@ -235,6 +235,44 @@ string convertToBase(int number, int base) {
reverse(result.begin(), result.end()); reverse(result.begin(), result.end());
return result.empty() ? "0" : result; // Если число 0, вернуть "0" return result.empty() ? "0" : result; // Если число 0, вернуть "0"
} }
void sieveOfEratosthenes(int n) {
// Создаем вектор для хранения простоты чисел. Изначально считаем, что все числа простые.
vector<bool> isPrime(n + 1, true);
// 0 и 1 не являются простыми числами.
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= n; ++i) {
if (isPrime[i]) {
// Отмечаем все кратные i как составные.
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// Выводим все простые числа.
cout << "Простые числа до " << n << ": ";
for (int i = 2; i <= n; ++i) {
if (isPrime[i]) {
cout << i << " ";
}
}
cout << endl;
}
void z2() {
int n;
cout << "Введите предел для поиска простых чисел: ";
cin >> n;
if (n < 2) {
cout << "Простых чисел нет." << endl;
}
else {
sieveOfEratosthenes(n);
}
}
void z5_16() { void z5_16() {
string inputFile = "input.txt"; // Исходный файл string inputFile = "input.txt"; // Исходный файл
string outputFile = "output.txt"; // Файл для результатов string outputFile = "output.txt"; // Файл для результатов
@@ -361,6 +399,7 @@ void z5_22() {
void showMenu() { void showMenu() {
cout << "Меню задач:\n"; cout << "Меню задач:\n";
cout << "1. «Алгоритм Евклида»\n"; cout << "1. «Алгоритм Евклида»\n";
cout << "2. «Решето какого-то чела»\n";
cout << "3. 3.16\n"; cout << "3. 3.16\n";
cout << "4. 3.22\n"; cout << "4. 3.22\n";
cout << "6. 4.16\n"; cout << "6. 4.16\n";
@@ -378,6 +417,7 @@ void launchTasks() {
switch (choice) { switch (choice) {
case 1: z1launcher(); break; case 1: z1launcher(); break;
case 2: z2(); break;
case 3: z3_16(); break; case 3: z3_16(); break;
case 4: z3_22(); break; case 4: z3_22(); break;
case 6: z4_16(); break; case 6: z4_16(); break;