помогите!! пж!!! С++!!!!! даю 100 б.
Вкладені цикли
5. Знайти 100 перших простих чисел.
6. Написати програму, яка виводить на екран шахівницю з заданим розміром клітини. Наприклад 3:
***---***---***---***---***---
---***---***---***---***---***
***---***---***---***---***---
---***---***---***---***---***
***---***---***---***---***---
---***---***---***---***---***
***---***---***---***---***---
---***---***---***---***---***
Answers & Comments
Объяснение:
Для знаходження перших 100 простих чисел можна скористатися алгоритмом "решето Ератосфена". Суть алгоритму полягає в наступному:
Створюємо масив з числами від 2 до N, де N - максимальне число, для якого ми шукаємо прості числа.
Позначаємо всі числа, крім 2, як прості.
Знаходимо найменше непозначене число в масиві (воно обов'язково буде простим) і позначаємо як просте всі його кратні, крім самого цього числа.
Повторюємо крок 3 доти, поки не будуть позначені всі числа до N.
Всі непозначені числа в масиві є простими числами.
Отже, для знаходження 100 перших простих чисел можна використати наступний код на C++:#include <iostream>
int main() {
const int N = 541; // максимальне число, для якого шукаємо прості числа
bool is_prime[N + 1];
for (int i = 2; i <= N; i++) {
is_prime[i] = true;
}
for (int i = 2; i <= N; i++) {
if (is_prime[i]) {
std::cout << i << " ";
for (int j = i * i; j <= N; j += i) {
is_prime[j] = false;
}
}
if (i == 100) {
break;
}
}
return 0;
}
Для виведення на екран шахівниці з заданим розміром клітинки можна використати вкладені цикли. Один з можливих варіантів коду на C++:
#include <iostream>
int main() {
const int N = 3; // розмір клітинки
const int M = 8; // кількість клітинок у рядку і стовпці
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < M; k++) {
if ((i + k) % 2 == 0) {
for (int l = 0; l < N; l++) {
std::cout << "***";
}
} else {
for (int l = 0; l < N; l++) {
std::cout << "---";
}
}
}
}
std::cout << std::endl;
}
return 0;