Обновить main.cpp
This commit is contained in:
40
main.cpp
40
main.cpp
@@ -235,6 +235,44 @@ string convertToBase(int number, int base) {
|
||||
reverse(result.begin(), result.end());
|
||||
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() {
|
||||
string inputFile = "input.txt"; // Исходный файл
|
||||
string outputFile = "output.txt"; // Файл для результатов
|
||||
@@ -361,6 +399,7 @@ void z5_22() {
|
||||
void showMenu() {
|
||||
cout << "Меню задач:\n";
|
||||
cout << "1. «Алгоритм Евклида»\n";
|
||||
cout << "2. «Решето какого-то чела»\n";
|
||||
cout << "3. 3.16\n";
|
||||
cout << "4. 3.22\n";
|
||||
cout << "6. 4.16\n";
|
||||
@@ -378,6 +417,7 @@ void launchTasks() {
|
||||
|
||||
switch (choice) {
|
||||
case 1: z1launcher(); break;
|
||||
case 2: z2(); break;
|
||||
case 3: z3_16(); break;
|
||||
case 4: z3_22(); break;
|
||||
case 6: z4_16(); break;
|
||||
|
||||
Reference in New Issue
Block a user