Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Лена96
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7
23.01.2014, 12:56     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #1
Здравствуйте,уважаемые программисты!) Помогите решить,пожалуйста, данную задачку в С++:
Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел.
________________________________________________________________________________________________
(К сожалению, откровенно говоря, я учусь на 1м курсе вечерней форме обучения, и преподавательница по программированию не внятно объясняла всем, поэтому никто в группе кроме 2ух человек не решали задачи,другим всем помогали именно эти 2 товарища во время зачета,я отсутствовала на последнем занятии по уважительным причинам,и к сожалению,совершенно не знаю С++, хотела бы от вас помощи, либо же хотя бы каких-либо наставлений и рекомендаций по литературе,которую можно прочитать. (сама в интеренете читаю на сайтах про С++ с нуля,но не могу понять некоторые команды и слова),в любом случае помимо решения данной задачки,мне необходимо будет её разъяснить преподу,поэтому мне нужно будет понять как её решить...)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 12:56     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел
Посмотрите здесь:

C++ Среди простых чисел найти найти такое, в двоичной записи которого максимальное число единиц.
2) Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов C++
C++ Нужно найти минимальное значение среди позитивных чисел и максимальное среди отрицательных.
Дан целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму парши элементов C++
C++ Дан одномерный массив A (n) подсчитать кол-во не совершенных чисел в нём (совершенные = сумме своих делителей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
23.01.2014, 13:15     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #2
для начала составь план
что нужно для решения этой задачи
первое что нужно создать функцию для проверки простоты числа
знаешь что такое простое число?

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

теперь скажи что ты из этого не умеешь?
Лена96
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7
23.01.2014, 13:35  [ТС]     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #3
лучше б спросить, что я из этого умею,эх(.
спасибо большое за план,хоть так я понимаю что искать поэтапно в интернете)))
OksiL
 Аватар для OksiL
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 14
23.01.2014, 19:56     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #4
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;
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
23.01.2014, 20:05     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #5
Цитата Сообщение от OksiL Посмотреть сообщение
double *mas = new double [n];
конкретный вопрос
Цитата Сообщение от Лена96 Посмотреть сообщение
целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел.
дубля целочисленный? а среди них может быть простое число?
Цитата Сообщение от OksiL Посмотреть сообщение
for(int j = 2; j < mas[i]; j++)
* * * * * * if(fmod(mas[i],j) == 0)
это так ты остаток от деления ищешь?
не ну с такими друзьями и врагов не надо
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
23.01.2014, 20:08     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #6
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;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
23.01.2014, 20:09     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #7
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;
}
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
23.01.2014, 20:12     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #8
Ev[G]eN, в цикле проверки на наличие делителей достаточно дойти до sqrt(number), а не до половины.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
23.01.2014, 20:44     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #9
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;
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
23.01.2014, 23:01     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #10
ValeryS, а разве в цикле строгое условие? По-моему там нестрогое должно быть.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
23.01.2014, 23:15     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #11
Arkaniy,
ты насчет корня????
да действительно так по правильному должно быть
C++
1
for(int i=3;i*i<=n;i+=2)
описался ( ударение каждый ставит как хочет), знаете ли
Arkaniy
 Аватар для Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 452
23.01.2014, 23:17     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #12
ValeryS, именно за корень и говорил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 11:05     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Лена96
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 7
24.01.2014, 11:05  [ТС]     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел #13
если честно,я конечно вижу уже решение готовое,но не понимаю значение каждой строки...
Yandex
Объявления
24.01.2014, 11:05     Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел
Ответ Создать тему
Опции темы

Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru