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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
prostoMaks
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 11
#1

Определить количество простых чисел в массиве - C++

08.05.2011, 12:42. Просмотров 982. Ответов 2
Метки нет (Все метки)

Преобразовать заданный массив целых положительных чисел F(n) таким образом, чтобы цифры каждого его элемента были записаны в обратном порядке. Определить количество простых чисел в массиве до и после преобразования. После преобразования удалить из массива максимальный элемент

Помогите решить
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 12:42     Определить количество простых чисел в массиве
Посмотрите здесь:
C++ Определить количество простых чисел в каждом массиве. Вычислить среднее арифметическое всех элементов массивов
Найти количество простых чисел в массиве C++
C++ Функция, возвращающая количество простых чисел в массиве
C++ Написать функцию, подсчитывающую количество простых чисел в переданном ей массиве
C++ Определить количество простых чисел
C++ Найти в одномерном массиве, состоящем из N целых чисел, количество простых элементов
Определить количество простых чисел в матрице C++
C++ Определить количество простых чисел в интервале
C++ Найти в массиве количество простых чисел,больших суммы цифр первого числа
C++ Найти в заданном одномерном массиве количество простых чисел, используя сортировку простым включением
C++ Найти в массиве произведение элементов между первым и вторым нулевыми элементами, и количество простых чисел
Определить максимальное количество простых чисел в двумерной матрице C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
08.05.2011, 14:37     Определить количество простых чисел в массиве #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от prostoMaks Посмотреть сообщение
Преобразовать заданный массив целых положительных чисел F(n) таким образом, чтобы цифры каждого его элемента были записаны в обратном порядке. Определить количество простых чисел в массиве до и после преобразования. После преобразования удалить из массива максимальный элемент
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
#include <iostream>
#include <algorithm>
#include <vector>
 
bool is_prime(const int n){
  for(int i = 2; i <= n / 2; i++)
    if( !(n % i) )
      return false;
  return true;
}
 
void print_arr(std::vector<int> &_a){
  for(std::vector<int>::value_type i = 0; i < _a.size(); ++i)
    std::cout << _a[i] << ' ';
}
 
int main(){
  size_t n = 0, cnt_before, cnt_after;
  std::cout << "\n\nCount elements = ";
  std::cin >> n;
  std::vector<int> arr(n);
  for(std::vector<int>::value_type i = 0; i < n; ++i){
    std::cout << "\n" << i + 1 << " element = ";
    std::cin >> arr[i];
  }
  cnt_before = std::count_if(arr.begin(), arr.end(), is_prime);
  struct func{
    int operator() (int _n){
      int __n = _n;
      _n = 0;
      while(__n){
        _n = _n * 10 + __n % 10;
        __n /= 10;
      }
      return _n;
    }
  };
  std::transform(arr.begin(), arr.end(), arr.begin(), func());
  cnt_after = std::count_if(arr.begin(), arr.end(), is_prime);
  std::cout << "\n\nArray after transform: ";
  print_arr(arr);
  std::cout << "\n\nCount prime elements before transform = " << cnt_before
            << "\nCount prime elements after transform = " << cnt_after;
  arr.erase(std::remove(arr.begin(), arr.end(), *std::max_element(arr.begin(), arr.end())), arr.end());
  std::cout << "\n\nArray after remove max element: ";
  print_arr(arr);
  return 0;
}
prostoMaks
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 11
08.05.2011, 15:37  [ТС]     Определить количество простых чисел в массиве #3
Цитата Сообщение от asics Посмотреть сообщение
std::transform(arr.begin(), arr.end(), arr.begin(), func());
эта строчка выдает ошибку, не могу понять почему
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru