1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
1

Найти простое число в массиве

28.05.2012, 22:15. Показов 15267. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как в С++ в массиве найти ПРОСТОЕ число (которое делится только на себя и на единицу) ?
Буду очень благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2012, 22:15
Ответы с готовыми решениями:

Найти максимальное простое число в массиве
Найти максимальное простое число в массиве. Найти минимальный полный квадрат среди положительных...

В массиве из целых чисел найти минимальное простое число
Вообщем задача звучит так: "В массиве из целых чисел найти минимальное простое число." Все что я...

Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
6.2.2. Помогите, пожалуйста, решить задачи в С++ с помощью функций. Дано простое число....

Дано простое число. Составить функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.

12
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
28.05.2012, 22:16 2
Цитата Сообщение от swoop Посмотреть сообщение
Просто подскажите
воспользуйтесь поиском
Большая коллекция решенных задач
1
11 / 11 / 2
Регистрация: 26.05.2012
Сообщений: 54
28.05.2012, 22:17 3
простым перебором
1
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:20  [ТС] 4
Jeron95, можно поподробнее про перебор ?
0
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.05.2012, 22:24 5
вот тут находит простые числа в функции, и последнее число указывает сколько их. Там вроде до 10000 подсчет идет. Переделаешь под массив и будет всё хорошо.
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
#include <iostream>
#include <conio.h>
using namespace std;
 bool Simple (int &N)
 {
      bool rez=true;
           for(int k=2;k<=N/2;k++)
           if (N%k==0) rez=false;
           return rez;
           }
                           
                      
                      int main()
                      {
                          int N=10,m=0;
                          for (int i=N;i<=10000;i++)
                          {
                              if (Simple(i)==true){m++;cout<<i<<" ";
}
                          }
                          cout<<m<<endl;
getch();
return 0;
}
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
28.05.2012, 22:27 6
C++
1
2
3
4
5
6
7
8
bool no_sample= false;
for(int i=n/2; i>1;i--)
   if(no_sample=(n%i==0))
        break;
 if( no_sample)
    // здесь что то делаем если число не простое
  else  
 // здесь что то делаем если число  простое
1
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:30  [ТС] 7
Спасибо большое.
Теперь осталось допридумать как найти среднее арифметическое элементов массива с первого до первого простого числа, и все будет замечательно
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
28.05.2012, 22:34 8
Цитата Сообщение от Andrey.K Посмотреть сообщение
for(int k=2;k<=N/2;k++)
if (N%k==0) rez=false;
а нахрена цикл крутить если мы уже нашли делитель?

Добавлено через 2 минуты
Цитата Сообщение от swoop Посмотреть сообщение
еперь осталось допридумать как найти среднее арифметическое элементов массива с первого до первого простого числа,
тебе не понятно
как найти среднее арифметическое?
как запомнить положение первого простого числа?
что будем делать если первый элемент массива и будет простым числом?
Цитата Сообщение от swoop Посмотреть сообщение
Спасибо большое.
Кнопочка есть
2
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:38  [ТС] 9
Кнопочки всем нажал
Как я понимаю, если простое число первый элемент, то среднее арифметическое и есть значение этого первого элемента.
А как запомнить положение первого простого числа ? И как считать вообще ?

P.S. сейчас скину условие задачи и свои наработки

Добавлено через 1 минуту
Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив. Найти среднее арифметическое элементов, расположенных в массиве до первого простого числа. Создать функции для вычисле-ния среднего значения и определения простого числа.

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
53
54
#include <iostream>
using namespace std;
int main()
{
    int n,n1,*X,*Y,*Z,k(0),k1(0),sum_str,sr_arif;
    cout<<"Vvedite razmernost massivov: ";
    cin>>n>>n1;
    X=new int [n];
    Y=new int [n1];
    cout<<"Vvedite elementy massiva X: ";
    for(int i=0;i<n;i++)
    {
        cin>>X[i];
        if(X[i]>0)
            k++;
    }
    cout<<"Vvedite lementy massiva Y: ";
    for(int i=0;i<n1;i++)
    {
        cin>>Y[i];
        if(Y[i]>0)
            k1++;
    }
    Z=new int [k+k1];
    int j(0);
    for(int i=0;i<n;i++)
    {
        if(X[i]>0)
        {Z[j]=X[i];
        j++;
        }
    }
    for(int i=0;i<n1;i++)
    {
        if(Y[i]>0)
        {Z[j]=Y[i];
        j++;
        }
    }
    cout<<"Massiv Z:\n";    
        for(int i=0;i<k+k1;i++)
            cout<<Z[]<<" ";
        cout<<endl;
       for (int i=2; i<k+k1; i++)
       {
       if ((k+k1)%i == 0) count++;
       }
 
    if (count == 0 )
       printf ("prostoe chislo\n");
    for(int i=0;i<k+k1;i++)
            cout<<Z[i];
        cout<<endl;
}
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
28.05.2012, 22:57 10
Цитата Сообщение от swoop Посмотреть сообщение
for(int i=0;i<k+k1;i++)
cout<<Z[]<<" ";
надеюсь это опечатка?

Цитата Сообщение от swoop Посмотреть сообщение
int j(0);
лучше(читабельней) использовать =
до 44 строчки я тебя понимал
дальше перестал
Цитата Сообщение от swoop Посмотреть сообщение
if ((k+k1)%i == 0) count++;
что ты этим хотел сказать??

поиск простого числа выделяешь в отдельную функцию
которая вернет истина если число простое и ложь если не простое(можешь наоборот)
дальше в цикле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int count=-1;// если нет простых чисел
for(int i=0;i<k+k1;i++)
     if(MyFunk(Z[i]))
        {
         count=i;// запоминаем положение первого простого числа
          break;// дальше крутить незачем
          }
  if(count==-1)
         return ; // простых нет вываливаемся
 
  int sum=0;
    for(int i=0; i<count+1;i++)
        sum+=Z[i];
 int sr=sum/(count+1);
1
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 23:04  [ТС] 11
Цитата Сообщение от ValeryS Посмотреть сообщение
Сообщение от swoop
if ((k+k1)%i == 0) count++;
что ты этим хотел сказать??
Если число делится без остатка, о оно непростое. Примерно так хотел сказать

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
Сообщение от swoop
if ((k+k1)%i == 0) count++;
что ты этим хотел сказать??
Хотел сказать, что если число без остатка делится...
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
28.05.2012, 23:05 12
Цитата Сообщение от swoop Посмотреть сообщение
Если число делится без остатка, о оно непростое. Примерно так хотел сказать
ну правильно хотел
а что сказал?
Цитата Сообщение от swoop Посмотреть сообщение
if ((k+k1)%i == 0)
ты делишь размер массива на итерацию цикла
где значения элемента массива то?
0
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 23:08  [ТС] 13
Да я С++ не особо хорошо знаю, вот и намудрил. Пытаюсь разобраться... Пока что туговато...
0
28.05.2012, 23:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2012, 23:08
Помогаю со студенческими работами здесь

Дано простое число. Составить функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число

Дано простое число. Составить функцию,которая будет находить следующее за ним простое число.
дано простое число.составить функцию,которая будет находить следующее за ним простое число.

Поменять местами в массиве последнее простое число и первое совершенное
Задан массив X(m) целых чисел.Поменять местами в массиве последнее простое число первое...

Поменять местами в массиве последнее простое число и первое совершенное
Добрый вечер всем!!! Наконец на парах начали разбирать одномерные массивы и вотже столкнулась с...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru