C/C++
Дана матрица целых чисел 8×8. Найти количество простых чисел в этой матрице
Дана матрица целых чисел 8×8. Найти количество простых чисел в этой матрице. Написать код программы на C/C++
#include
#include
using namespace std;
bool isPrime(int x){
for(int i = 2; i * i j;
int res = cntPrimes(a);
cout
Jan Lambregts
Посмотрите на результат работы Вашей программы:

Jan Lambregts
А вообще-то в диапазоне [0;63] содержится 18 простых чисел, а вовсе не двадцать:

В ссылке функция проверки на простоту.
просто пройдите свой массив в цикле с этой функцией
https://pastebin.com/jVjjeDKm
просто пройдите свой массив в цикле с этой функцией
https://pastebin.com/jVjjeDKm
Константин Еееее
линейная (
#include <ctime>
#include <cmath>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
bool is_prime(int n)
{
if (n < 2) return false;
if (n == 2 || n == 3) return true;
if (n % 2 == 0) return false;
int l, m = sqrt(n);
for (l = 3; l <= m; l += 2)
if (n % l == 0) return false;
return true;
}
int main()
{
int i, j, k = 0, a[8][8];
srand(time(NULL));
for (i = 0; i < 88; i++) cout << "\033[33m=";
cout << endl;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
a[i][j] = rand();
if (is_prime(a[i][j]))
{
cout << "\033[36m" << setw(11) << a[i][j];
++k;
}
else cout << "\033[35m" << setw(11) << a[i][j];
}
cout << endl;
}
for (i = 0; i < 88; i++) cout << "\033[33m=";
cout << endl << "\033[31m" << k << endl;
cin.get(); cin.get(); return 0;
}
Так матрица формируется из псевдо-случайных чисел из диапазона [0;RAND_MAX]. У меня RAND_MAX=2³¹-1. А если надо сделать так, чтобы числа в матрице были, например, только до ста включительно, тогда при формировании матрицы надо написать
rand() % 101;
а при выводе матрицы лучше в обоих манипуляторах setw поставить значения 5, а не 11, то есть сделать setw(5)...
#include <cmath>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
bool is_prime(int n)
{
if (n < 2) return false;
if (n == 2 || n == 3) return true;
if (n % 2 == 0) return false;
int l, m = sqrt(n);
for (l = 3; l <= m; l += 2)
if (n % l == 0) return false;
return true;
}
int main()
{
int i, j, k = 0, a[8][8];
srand(time(NULL));
for (i = 0; i < 88; i++) cout << "\033[33m=";
cout << endl;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
a[i][j] = rand();
if (is_prime(a[i][j]))
{
cout << "\033[36m" << setw(11) << a[i][j];
++k;
}
else cout << "\033[35m" << setw(11) << a[i][j];
}
cout << endl;
}
for (i = 0; i < 88; i++) cout << "\033[33m=";
cout << endl << "\033[31m" << k << endl;
cin.get(); cin.get(); return 0;
}
Так матрица формируется из псевдо-случайных чисел из диапазона [0;RAND_MAX]. У меня RAND_MAX=2³¹-1. А если надо сделать так, чтобы числа в матрице были, например, только до ста включительно, тогда при формировании матрицы надо написать
rand() % 101;
а при выводе матрицы лучше в обоих манипуляторах setw поставить значения 5, а не 11, то есть сделать setw(5)...

Просто перебираешь матрицу и каждый элемент проверяешь на простоту
наивный
Виктор Страпачук
Ну просто идею написать нетрудно
Создаёте двумерный массив 8*8, заполняете его значениями и циклом проходите по каждому элементу массива, внутри цикла ваше условие проверки
Похожие вопросы
- Даны два целых числа. Вывести ответ является ли максимальное число степенью 2
- С++ Максимум трёх чисел Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число
- Даны число N и последовательность из N целых чисел. Найти количество и сумму тех чисел, которые нечетны и положительны.
- Найти все простые числа в диапазоне от a до b
- Сформировать матрицу B(M, N) элементами которой являются случайные числа, равномерно распределенные в интервале (-5, 7
- Дана матрица nxn, вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции на языке си.
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Дана непустая последовательность целых чисел, среди которых есть два нуля. Найти сумму чисел, расположенных между ними.
- Напишите рекурсивную функцию, которая принимает двухмерный массив целых чисел и количество сдвигов и выполняет
- В языке С.Необходимо определить количество целых чисел из ряда от 1 до 100, которые содержат цифры 3.