C/C++
ЗАДАЧА НА c++ СРОЧНО
Написать программу ,которая требует ввести натуральное число n ,строит массив из n натуральных чисел и удаляет второе простое число(если таковое имеется)
Задаёшь переменные
Создаёшь массив
путём цикла выполняешь условие задачи
мой 7 летний сын такие задачи на плюсах решает с закрытыми глазами!!!
Создаёшь массив
путём цикла выполняешь условие задачи
мой 7 летний сын такие задачи на плюсах решает с закрытыми глазами!!!
Хазби Ахполов
Решите пожалуйста,у меня экзамен,я не знаю как это делать
#include <iostream>
#include <ctime>
#include <cstdlib>
int prost(int n)
{
if(n == 1) return 0;
else if(n == 2) return 1;
for(int x = 2; x < n; x++)
{
if(n % x == 0)
{
return 0;
}
}
return 1;
}
using namespace std;
int main()
{
unsigned n;
do
{
cout << "n: ";
cin >> n;
}while(!n);
int * A = new int[n];
srand(time(nullptr));
rand();
for(int x = 0; x < n; x++)
{
A[x] = rand() % 10 + 1; // генерация в диапазоне [1;10]
cout << A[x] << ' ';
}
cout << endl << endl;
int count = 0, i = 0;
for(int x = 0; x < n; x++)
{
count += prost(A[x]);
if(count != 2)
{
A[i++] = A[x];
}
else
{
count++;
// "удаление числа"
}
}
// вывод на экран
for(int x = 0; x < i; x++)
cout << A[x] << ' ';
cout << endl;
if(A != (int*) nullptr)
{
delete [] A;
A = (int*) nullptr;
}
else exit(1);
return 0;
}
#include <ctime>
#include <cstdlib>
int prost(int n)
{
if(n == 1) return 0;
else if(n == 2) return 1;
for(int x = 2; x < n; x++)
{
if(n % x == 0)
{
return 0;
}
}
return 1;
}
using namespace std;
int main()
{
unsigned n;
do
{
cout << "n: ";
cin >> n;
}while(!n);
int * A = new int[n];
srand(time(nullptr));
rand();
for(int x = 0; x < n; x++)
{
A[x] = rand() % 10 + 1; // генерация в диапазоне [1;10]
cout << A[x] << ' ';
}
cout << endl << endl;
int count = 0, i = 0;
for(int x = 0; x < n; x++)
{
count += prost(A[x]);
if(count != 2)
{
A[i++] = A[x];
}
else
{
count++;
// "удаление числа"
}
}
// вывод на экран
for(int x = 0; x < i; x++)
cout << A[x] << ' ';
cout << endl;
if(A != (int*) nullptr)
{
delete [] A;
A = (int*) nullptr;
}
else exit(1);
return 0;
}
Хазби Ахполов
Просто лучший
Хазби Ахполов
Отдуши родной
Можно ещё так (с модулем vector, с генерацией натуральных чисел в диапазоне [1..2³¹] и с правильной проверкой таких чисел на простоту):
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <ctime>
using namespace std;
void print_array(vector <unsigned long> x)
{
cout << endl;
int i, j = 0;
for (i = 0; i < x.size(); i++)
{
j++;
cout << setw(11) << x[i];
if (j == 10)
{
j = 0;
cout << endl;
}
}
if (j) cout << endl;
cout << endl;
}
bool prime(unsigned long x)
{
if (x < 2) return false;
if (x == 2 || x == 3) return true;
if (x % 2 == 0 || x % 3 == 0) return false;
for (int i = 3; i <= floor(sqrt(x)); i += 2)
if (x % i == 0) return false;
return true;
}
int main()
{
unsigned long i, k = 0, n;
cout << "n = ";
cin >> n;
vector <unsigned long> array(n);
srand(time(nullptr));
for (i = 0; i < n; i++) array[i] = rand() + 1;
print_array(array);
for (i = 0; i < n; i++)
if (prime(array[i]))
{
k++;
cout << k << ')' << setw(11) << array[i]
<< " №" << i + 1 << endl;
if (k == 2)
{
array.erase(array.begin() + i);
break;
}
}
print_array(array);
system("pause");
}

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <ctime>
using namespace std;
void print_array(vector <unsigned long> x)
{
cout << endl;
int i, j = 0;
for (i = 0; i < x.size(); i++)
{
j++;
cout << setw(11) << x[i];
if (j == 10)
{
j = 0;
cout << endl;
}
}
if (j) cout << endl;
cout << endl;
}
bool prime(unsigned long x)
{
if (x < 2) return false;
if (x == 2 || x == 3) return true;
if (x % 2 == 0 || x % 3 == 0) return false;
for (int i = 3; i <= floor(sqrt(x)); i += 2)
if (x % i == 0) return false;
return true;
}
int main()
{
unsigned long i, k = 0, n;
cout << "n = ";
cin >> n;
vector <unsigned long> array(n);
srand(time(nullptr));
for (i = 0; i < n; i++) array[i] = rand() + 1;
print_array(array);
for (i = 0; i < n; i++)
if (prime(array[i]))
{
k++;
cout << k << ')' << setw(11) << array[i]
<< " №" << i + 1 << endl;
if (k == 2)
{
array.erase(array.begin() + i);
break;
}
}
print_array(array);
system("pause");
}

Хазби Ахполов
Спасибо большое Вам