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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
Ivan2012
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 19
24.06.2012, 17:30     Удаление всех простых чисел из массива #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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iomanip.h>
 
void create(int a[100],int &n);
int fibonacci (int, int [100]);
void print(int a[100],int n);
void sort_matrix(int m,int n)
void sozdat_matrix(int m,int n)
//-------------------------------------------
void main(){
 srand(time(NULL));
 
int a[100];
int n,i,j;
 
create(a,n);
print(a,n);
 
 
system("pause");
}
//----------------------------------------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
24.06.2012, 17:43     Удаление всех простых чисел из массива #2
Цитата Сообщение от Ivan2012 Посмотреть сообщение
Помогите, пожалуйста, решить задачу в с++. Как удалить все простые числа из массива?
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 <cmath>
 
void DeleteElement(int* arr, size_t length, size_t pos) {
 
    for( ; pos < length - 1; ++pos) arr[pos] = arr[pos + 1];
}
 
bool IsPrime(int num) {
 
    if(2 == num) return true;
    if(!(num%2)) return false;
 
    for(int i = 2; i <= sqrt((double)num); ++i) {
        if(!(num%i)) return false;
    }
 
    return true;
}
 
int main() {
 
    int *arr;
    size_t length;
 
    std::cout << "Array size: ";
    std::cin >> length;
    arr = new int[length];
 
    for(size_t i(0); i < length; ++i) {
        std::cout << "A[" << i + 1 << "] = ";
        std::cin >> arr[i];
    }
 
    for(size_t i(0); i < length; ++i) {
        if(IsPrime(arr[i])) {
            DeleteElement(arr, length, i);
            --length;
        }
    }
 
    for(size_t i(0); i < length; ++i) {
        std::cout << arr[i] << ' ';
    }
 
    return 0;
}
Ivan2012
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 19
24.06.2012, 17:43  [ТС]     Удаление всех простых чисел из массива #3
он мне нужет, удаление простых чисел это только часть программы будет
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 17:43     Удаление всех простых чисел из массива #4
Ivan2012, проверяй остаток от деления на делители от 2 до самого числа с включением. если там будет деление без остатка, значит нашел непростое число)
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
24.06.2012, 17:57     Удаление всех простых чисел из массива #5
Цитата Сообщение от Ivan2012 Посмотреть сообщение
удаление все простых чисел из массива
А когда простое число удаляется из массива, то вместо этого числа что записывается?
Ivan2012
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 19
25.06.2012, 09:53  [ТС]     Удаление всех простых чисел из массива #6
Полная версия задачи:
Постановка задачи:
1. Используя функции сформировать с помощью ДСЧ одномерный массив и вывести его на печать.
2. Выполнить обработку одномерного массива в соответствии с вариантом, используя функции, результат вывести на печать.
3. Используя функции сформировать с помощью ДСЧ двумерный массив и вывести его на печать.
4. Выполнить обработку двумерного массива в соответствии с вариантом, используя функции, результат вывести на печать.
5. Ввести с клавиатуры строку символов и обработать ее в соответствии со своим вариантом, используя функции.
Задача:
Одномерный массив (Удалить все простые числа из массива.)
Двумерный массив (Отсортировать по убыванию все строки матрицы.)
Строки (Отсортировать слова в строке в лексикографическом порядке (по алфавиту).)
Alt_Shift
 Аватар для Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
25.06.2012, 11:01     Удаление всех простых чисел из массива #7
Цитата Сообщение от g-h Посмотреть сообщение
А когда простое число удаляется из массива, то вместо этого числа что записывается?
тут имеется ввиду что нужно переписать в новый массив но уже без простых чисел и меньшего размера
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.06.2012, 11:13     Удаление всех простых чисел из массива #8
Ivan2012, помножь всё на 4 и простых не будет.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.06.2012, 02:36     Удаление всех простых чисел из массива #9
taras atavin, а на два умножить, не, не получится уже, да?

Ivan2012,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cmath>
 
bool is_prime(int number) {
   for (int i = std::sqrt(number); i >= 2; --i)
      if (number % i == 0)
         return false;
   return number != 1;
}
 
int main() {
   std::vector<int> array { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
   array.erase(std::remove_if(array.begin(), array.end(), is_prime), array.end());
   std::copy(array.begin(), array.end(), std::ostream_iterator<int>(std::cout, " "));
}
Результат: http://liveworkspace.org/code/d7afc8...2166338a423459
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
26.06.2012, 04:04     Удаление всех простых чисел из массива #10
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
а на два умножить, не, не получится уже, да?
если 1 умножить на два или три, то получится простое число
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.06.2012, 00:45     Удаление всех простых чисел из массива #11
Цитата Сообщение от defer Посмотреть сообщение
если 1 умножить на два или три, то получится простое число
Точно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 08:43     Удаление всех простых чисел из массива
Еще ссылки по теме:

Сортировка массива, удаление простых чисел C++
C++ как вычислить количество простых чисел среди положительных чисел массива
C++ Найти сумму всех простых чисел в интервале от 0 до 1000000

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

Или воспользуйтесь поиском по форуму:
Ivan2012
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 19
28.06.2012, 08:43  [ТС]     Удаление всех простых чисел из массива #12
Как отсортировать слова в строке в лексикографическом порядке (по алфавиту)?
Yandex
Объявления
28.06.2012, 08:43     Удаление всех простых чисел из массива
Ответ Создать тему
Опции темы

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