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

Удалить простые числа из массива - C++

Восстановить пароль Регистрация
 
Xazadyn
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 2
17.12.2013, 06:21     Удалить простые числа из массива #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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "iostream"
#include "time.h"
#include "math.h"
using namespace std;
 
    
void SearchPrimeNumbers(int mass[], int N) 
{int i, d, n,f;
for (i=0; i<N; i++)
{
    n=mass[i];
    f=0;
    for (d=2; d*d<=n; d++)
        if (n%d==0)
        {
            f=1;
                break;
        }
    if(!f)
      printf("%d ", mass[i]);
}
}
 
int main()
{
    setlocale(LC_ALL,"Russian"); //ïîäêëþ÷åГ*ГЁГҐ ðóññêîé áèáëèîòåêè
    int n,i,N;
    
    cout << "âûâîä Г¬Г*Г±Г±ГЁГўГ*=>" <<endl ;
    cin >>n;
    int *mass = new int [n]; // îáüÿâëÿåì äèГ*Г*ìè÷åñêèé Г¬Г*Г±Г±ГЁГў
    srand(time(NULL)); // ГґГіГ*êöèÿ ГЈГҐГ*åðèðóåò Г·ГЁГ±Г«Г* ГўГ§Г*âèñèìîñòè îò âðåìåГ*ГЁ Г*Г* êîìïüþòåðå
    cout << "Г¬Г*Г±Г±Г±ГЁГў"<<endl;
 
        for (i=0;i<n;i++){
        mass[i]= -50+rand()%100; //Г°Г*Г*äîìГ*ûå Г·ГЁГ±Г«Г*
        cout<<i<<")"<<mass[i]<<"  ";}
 
 
for (i=1;i<n;i++){
    if ((mass[i-1]>0)&&(mass[i]>0) || (mass[i-1]<0)&&(mass[i]<0)){;break;}  // ïðîâåðêГ* Г*Г* Г§Г*Г*êî÷åðåäîâГ*Г*ГЁГҐ
}
    if (i==n) {
              for (int j=0;j<n;j++){
                                    mass[j]=abs(mass[j]); // abs - ìîäóëü.
                                    }
              for (int k=n-1;k>=0;k--)
                  {
                   for (int p=n-2;p>=0;p--)
                       {
                        if(mass[p]>mass[p+1])
                                             {
                         int tmp=mass[p];
                         mass[p]=mass[p+1];
                         mass[p+1]=tmp;
                                           }
                         }
  }
    }else {cout<<endl;
        for(int i=0; i<n-1; i++)
        for(int j=0; j<n-i-1; j++)
            if(mass[j]>mass[j+1])
            {
                int tmp=mass[j]; mass[j]=mass[j+1]; mass[j+1]=tmp;
            }
            for(int i = 2; i < n; i++)  // 
     {
         for (int j = 2; j <= (i/j); j++) {
             if(!(i%j)) break; // 
         if(j > (i/j) ) cout <<mass[i] << " ";  // 
     } 
            }}
    
    
    cout<<endl;
    for (int i=0;i<n;i++){
    cout<<mass[i]<<"  ";}
    system ("PAUSE");
}
Добавлено через 8 часов 19 минут
up
очень нужно)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 06:21     Удалить простые числа из массива
Посмотрите здесь:

Определить, есть ли среди элементов массива простые числа... C++
Простые числа исходного одномерного массива C++
C++ Вывести простые числа из массива
C++ Создать односвязный список из последовательности чисел, удалить из него все простые числа
C++ Вывод массива в обратном порядке, простые числа
C++ Вывести простые числа одномерного массива
C++ Удалить все простые числа и найти среднее арифметическое до и после удаления простых чисел
C++ Вывести все простые числа из заданного пользователем массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bradobrei
Продам уран 238U
 Аватар для bradobrei
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
17.12.2013, 06:31     Удалить простые числа из массива #2
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
#include <iostream>
#include <cstdlib>
using namespace std;
#define n 10
int main(){
    int mas[n], count, tmp = 0;
    int *out = new int[n];
    for(int i = 0; i < n; i++){
        mas[i] = rand()% 50 + 1;
        cout<<mas[i]<<" ";
        count = 0;
        for(int j = 2; j <= 50; j++){
            if(mas[i] % j == 0)
                count ++;
        }
        if(count > 1){
            out[tmp] = mas[i];
            tmp ++;
        }
    }
    cout<<endl;
    for(int i = 0; i < tmp; i++)
        cout<<out[i]<<" ";
return 0;
}
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 07:13     Удалить простые числа из массива #3
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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
bool is_prime(const int &value) {
    for (int i = 2; i * i <= value; ++i) {
        if (value % i == 0) return false;
    }
    return true;
}
 
int main()
{
    vector<int> v, res;
    // init v here
    
    vector<int>::iterator it = copy_if(v.begin(), v.end(), res.begin(),
        [](const int &value){ return !is_prime(value); });
    res.resize(it - res.begin());
    // res - filtered array
    
    return 0;
}
Yandex
Объявления
17.12.2013, 07:13     Удалить простые числа из массива
Ответ Создать тему
Опции темы

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