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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 5.00
swoop
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:15     Найти простое число в массиве #1
Как в С++ в массиве найти ПРОСТОЕ число (которое делится только на себя и на единицу) ?
Буду очень благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2012, 22:15     Найти простое число в массиве
Посмотрите здесь:

Найти максимальное простое число в массиве C++
Поменять местами в массиве последнее простое число и первое совершенное C++
C++ Поменять местами в массиве последнее простое число и первое совершенное
Дано простое число. Составить функцию,которая будет находить следующее за ним простое число. C++
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.05.2012, 22:16     Найти простое число в массиве #2
Цитата Сообщение от swoop Посмотреть сообщение
Просто подскажите
воспользуйтесь поиском
Большая коллекция решенных задач
Jeron95
11 / 11 / 1
Регистрация: 26.05.2012
Сообщений: 54
28.05.2012, 22:17     Найти простое число в массиве #3
простым перебором
swoop
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:20  [ТС]     Найти простое число в массиве #4
Jeron95, можно поподробнее про перебор ?
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
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;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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  
 // здесь что то делаем если число  простое
swoop
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 22:30  [ТС]     Найти простое число в массиве #7
Спасибо большое.
Теперь осталось допридумать как найти среднее арифметическое элементов массива с первого до первого простого числа, и все будет замечательно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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 Посмотреть сообщение
Спасибо большое.
Кнопочка есть
swoop
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;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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);
swoop
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++;
что ты этим хотел сказать??
Хотел сказать, что если число без остатка делится...
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
28.05.2012, 23:05     Найти простое число в массиве #12
Цитата Сообщение от swoop Посмотреть сообщение
Если число делится без остатка, о оно непростое. Примерно так хотел сказать
ну правильно хотел
а что сказал?
Цитата Сообщение от swoop Посмотреть сообщение
if ((k+k1)%i == 0)
ты делишь размер массива на итерацию цикла
где значения элемента массива то?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 23:08     Найти простое число в массиве
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
swoop
1 / 1 / 0
Регистрация: 04.04.2012
Сообщений: 14
28.05.2012, 23:08  [ТС]     Найти простое число в массиве #13
Да я С++ не особо хорошо знаю, вот и намудрил. Пытаюсь разобраться... Пока что туговато...
Yandex
Объявления
28.05.2012, 23:08     Найти простое число в массиве
Ответ Создать тему
Опции темы

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