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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ malloc relloc c http://www.cyberforum.ru/cpp-beginners/thread291039.html
Помогите пожалуйста. Необходимо создать м-цу н*н размера с помощью маллок, а затем сделать ее (н+1)*(н+1) мерной c помощью реаллок, и чтобы if(i==n+1||j==n+1) a=999999;
C++ Class Complex Товарищи Программисты, проблема более теоритического характера, чем практического. А проблема в следующем: есть класс комплексное число, какой класс логичнее от него наследовать, чтобы не слишком заумно, но изящно и с демонстрацией применения виртуальных функций и тп? Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread291033.html
Вопрос C++
Я знаю что вопрос покажится вам смешным но укажите пожалуйста ошибку я никак не могу найти а помочь некому #include<iostream> int main() { int number1; int number2; int sum; std::cout << "Enter first integer: " ;
Закон Амдала C++
Закон Амдала (Время: 1 сек. Память: 16 Мб Сложность: 23%) Параллельное программирование изучает методы построения программ, которые будут выполняться на нескольких процессорах. В результате решения одной из первых задач этого раздела информатики появился закон Амдала. Задача Амдала формулировалась так. Имеется n процессоров и p процентов вычислений не могут выполняться параллельно. Во...
C++ Возвращение массива из функции http://www.cyberforum.ru/cpp-beginners/thread291008.html
Я знаю, что массив из функции можно вернуть с помощью указателя. Например int* f (int n) { // тело функции int *a= new int; return a; } А как это можно сделать через класс, если эта функция-компонентная функция класса?
C++ [Длинная арифметика]Обращение к большому индексу Бесконечная последовательность битов, предложенная Кеане, равна 001001110001001110110110001… и формируется следующим алгоритмом: вначале записывается 0, потом 001, далее 001001110, то есть, для получения следующего члена, предыдущий записывается дважды, а справа приписывается его отрицание. Элементы этого ряда являются начальными подпоследовательностями Кеане. Требуется написать программу,... подробнее

Показать сообщение отдельно
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
08.05.2011, 14:37     Определить количество простых чисел в массиве
Цитата Сообщение от 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;
}
 
Текущее время: 17:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru