Найти в последовательности наибольшее простое число - C (СИ)
Формулировка задачи:
Здравствуйте, помогите пожалуйста с написанием программы, буду очень благодарен. вот задача:
дан одномерный целочисленный массив. найти в последовательности наибольшее простое число
заранее спасибо
upp
Решение задачи: «Найти в последовательности наибольшее простое число»
textual
Листинг программы
#include <iostream> #include <time.h> #define SIZE 10 bool PrimeNumber(int n) { for(int i=2; i<=10; i++) { bool check = false; if(i == n) continue; if(n%i !=0) check = true; if(check == false || n == 1 || n == 0) { return false; } } return true; } int main() { setlocale(0,"rus"); srand(time(NULL)); int Max = 0; int mas[SIZE]; for(int i=0; i<SIZE; i++) mas[i] = rand()%20; for(int j=0; j<SIZE; j++) { printf("%d ", mas[j]); if(PrimeNumber(mas[j]) == true && mas[j] > Max) Max = mas[j]; } printf("\nНаибольшее простое число: %d\n", Max); return 0; }
Объяснение кода листинга программы
В этом коде:
- Задана функция
PrimeNumber
, которая проверяет, является ли число простым. - В функции
main
создается массивmas
размеромSIZE
(10), который заполняется случайными числами от 0 до 20. - Затем в цикле перебираются все числа в массиве.
- Для каждого числа в массиве вызывается функция
PrimeNumber
, чтобы проверить, является ли число простым. - Если число простое и больше текущего максимального числа
Max
, то оно становится новым максимальным числом. - В конце выводится наибольшее простое число.
Код не оптимален, так как использует
грубую силу
, перебирая все числа до проверяемого. Для больших чисел это может занять много времени. Лучше использовать более сложные алгоритмы для определения простоты числа, например, решето Эратосфена.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д