Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7

Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел

23.01.2014, 12:56. Показов 2965. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,уважаемые программисты!) Помогите решить,пожалуйста, данную задачку в С++:
Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел.
________________________________________ ________________________________________ ________________
(К сожалению, откровенно говоря, я учусь на 1м курсе вечерней форме обучения, и преподавательница по программированию не внятно объясняла всем, поэтому никто в группе кроме 2ух человек не решали задачи,другим всем помогали именно эти 2 товарища во время зачета,я отсутствовала на последнем занятии по уважительным причинам,и к сожалению,совершенно не знаю С++, хотела бы от вас помощи, либо же хотя бы каких-либо наставлений и рекомендаций по литературе,которую можно прочитать. (сама в интеренете читаю на сайтах про С++ с нуля,но не могу понять некоторые команды и слова),в любом случае помимо решения данной задачки,мне необходимо будет её разъяснить преподу,поэтому мне нужно будет понять как её решить...)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2014, 12:56
Ответы с готовыми решениями:

Дан одномерный целочисленный массив из n элементов. Найти количество различных чисел среди элементов этого массива
Дан одномерный целочисленный массив из n элементов. Найти количество различных чисел среди элементов этого массива. Например, если задан...

2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов
2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов.

Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов
//Дан целочисленный массив размера N. //Найти максимальное количество его одинаковых элементов.

12
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
23.01.2014, 13:15
для начала составь план
что нужно для решения этой задачи
первое что нужно создать функцию для проверки простоты числа
знаешь что такое простое число?

я предлагаю такой алгоритм
ввести размер массива
выделить память под два массива, обнулить их
ввести значения с клавиатуры( из файла) и записать их в первый массив
проверить значение на простоту
если число простое записать во второй массив
найти максимальное число во втором массиве
вывести его на экран
алгоритм не самый оптимальный но самый понятный

теперь скажи что ты из этого не умеешь?
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7
23.01.2014, 13:35  [ТС]
лучше б спросить, что я из этого умею,эх(.
спасибо большое за план,хоть так я понимаю что искать поэтапно в интернете)))
0
 Аватар для OksiL
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 14
23.01.2014, 19:56
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <locale>
using namespace std;
int main()
{
    setlocale (0, "rus");
    int n = 0, i = 0, m = 0, size = 0;
    cout << "Введите кол-во элементов массива - ";
    cin >> n;
    double *mas = new double [n];
    cout << "Заполните массив элементами." << endl;
    for (i = 0; i < n; i++)
    {
        cout << i + 1 << "-й элемент = ";
        cin >> mas[i];
    }
    cout << "Известный массив: ";
    for (i = 0; i < n; i++)
        cout << mas[i] << " ";
    int *mas2 = new int [n];
    bool flag = true;
    for (i = 0; i < n; i++)
    {
        flag = true;
        for(int j = 2; j < mas[i]; j++)
            if(fmod(mas[i],j) == 0)
            {
                flag = false;
                break;
            }
        if(flag == true)
        {
            mas2[size] = mas[i];
            size++;
        }
    }
    cout << "\nМассив простых чисел: ";
    for (i = 1; i < size; i++)
        cout << mas2[i] << " ";
    int max = 0;
    max = mas2[0];
    for (i = 0; i < size; i++)
        if (mas2[i] > max)
            max = mas2[i];
    cout << "\nМаксимальное число = " << max << endl;
    cout << endl;
    delete [] mas;
    delete [] mas2;
    cin.sync();
    cin.ignore();
    return 0;
}
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
23.01.2014, 20:05
Цитата Сообщение от OksiL Посмотреть сообщение
double *mas = new double [n];
конкретный вопрос
Цитата Сообщение от Лена96 Посмотреть сообщение
целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел.
дубля целочисленный? а среди них может быть простое число?
Цитата Сообщение от OksiL Посмотреть сообщение
for(int j = 2; j < mas[i]; j++)
* * * * * * if(fmod(mas[i],j) == 0)
это так ты остаток от деления ищешь?
не ну с такими друзьями и врагов не надо
1
 Аватар для MicM
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
23.01.2014, 20:08
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <ctime>
#include <cstdlib>
 
bool simply (int n)
{
     if (n<2)
        return false;
     else
     {
         for (int i=2; i<=n/2; i++)
             if (n%i==0)
                return false;
         return true;
     }
        
}
 
int main()
{
    unsigned int n;
    std::cout <<"N = ";
    std::cin >> n;
    int *a = new int[n];
    std::srand (time(0));
    bool flag = false;
    for (int i=0; i<n; i++)
    {
        a[i]=rand()%57+1;
        if (simply(a[i]))
           flag = true;
        std::cout <<a[i] <<' ';
    }
    std::cout <<std::endl;
    if (!flag)
       std::cout <<"V massive new prostyx chisel\n";
    else 
    {
         int max = 2;
         for (int i=0; i<n; i++)
             if (simply(a[i]) && a[i]>max)
                max = a[i];
         std::cout <<max <<std::endl;
    }
    delete [] a;
    return 0;
}
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
23.01.2014, 20:09
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cstdlib>
#include <ctime>
 
bool isSimpleNumber(int number);
 
int main()
{
    std::srand((size_t)(std::time)(nullptr));
 
    size_t arraySize;
    std::cout << "N: ";
    std::cin >> arraySize;
 
    int maximal = -1;
    int *array = new int [arraySize];
    std::cout << "Array: " << std::endl;
    for (size_t i = 0; i < arraySize; i++) {
        std::cout << (array[i] = std::rand() % 50) << ' ';
        maximal = isSimpleNumber(array[i]) ? array[i] : maximal;
    }
    std::cout << std::endl;
 
    std::cout << "Simple numbers: " << std::endl;
    for (size_t i = 0; i < arraySize; i++) {
        if (isSimpleNumber(array[i])) {
            std::cout << array[i] << ' ';
            maximal = maximal < array[i] ? array[i] : maximal;
        }
    }
    std::cout << std::endl << "Maximal of simple numbers: " << maximal << std::endl;
    
    delete [] array;
    array = nullptr;
 
    std::system("pause");
    return 0;
}
 
bool isSimpleNumber(int number)
{
    if (number < 2) {
        return false;
    }
    for (int i = 2; i <= number / 2; i++) {
        if (!(number % i)) {
            return false;
        }
    }
    return true;
}
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
23.01.2014, 20:12
Ev[G]eN, в цикле проверки на наличие делителей достаточно дойти до sqrt(number), а не до половины.
2
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
23.01.2014, 20:44
Arkaniy,
абсолютно согласен
и тема поднималась не один раз
для начала
для упрощения
C++
1
2
3
4
5
6
7
8
9
bool Primitiv(unsigned int n)
{
 if(n%2==0)
  return false;
  if(i=3;i< sqrt(n);i+=2)
     if ((n%i)==0)
       return false;
return true;
}
есть более эффективные алгоритмы и они здесь не раз описывались

Цитата Сообщение от ValeryS Посмотреть сообщение
алгоритм не самый оптимальный
но с разными вариациями
тогда бы хоть рассказали что каждая строчка делает
более эффективный ( но не самый крутой)
использовать динамический массив vector
и при вводе числа проверять простое или нет
если простое добавить в вектор(массив) если нет проигнорировать
а потом найти максимум в векторе
Лена96,
тебе уже здесь показали пару вариантов проверку на простоту числа
можешь сама сейчас функцию написать?

Добавлено через 2 минуты
еще проще чтобы не задействовать библиотеку
C++
1
2
3
for(int i=3;i*i<n;i+=2)
   if(n%i==0)
     return false;
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
23.01.2014, 23:01
ValeryS, а разве в цикле строгое условие? По-моему там нестрогое должно быть.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
23.01.2014, 23:15
Arkaniy,
ты насчет корня????
да действительно так по правильному должно быть
C++
1
for(int i=3;i*i<=n;i+=2)
описался ( ударение каждый ставит как хочет), знаете ли
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
23.01.2014, 23:17
ValeryS, именно за корень и говорил
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7
24.01.2014, 11:05  [ТС]
если честно,я конечно вижу уже решение готовое,но не понимаю значение каждой строки...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.01.2014, 11:05
Помогаю со студенческими работами здесь

Целочисленный массив: найти элементы, произведение которого с предыдущим максимальное среди всех элементов
Задать целочисленный массив. Найти элементы, произведение которого с предыдущим максимальное среди всех элементов. Вывести эти элементы...

Дан целочисленный массив А[п], среди элементов есть одинаковые. Создать массив из различных элементов А[п]
Помогите пожалуйста с поставленной задачей: Дан целочисленный массив А, среди элементов есть одинаковые. Создать массив из различных...

Ввести целочисленный массив 4х4 и определить максимальное среди элементов массива
Ввести целочисленный массив 4х4 и определить максимальное среди элементов массива.

Дан массив из n элементов. Необходимо найти максимальное и минимальное значение элементов массива
Вот код: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int n; cin &gt;&gt; n; int...

Дан целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму парши элементов
дано целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму парши элементов, на нечетных местах и их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru