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

Как заполнить массив числами, удовлетворяющими какому-то условию? - C++

Восстановить пароль Регистрация
 
iamthewine
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 6
15.09.2013, 16:05     Как заполнить массив числами, удовлетворяющими какому-то условию? #1
Здравствуйте, помогите, пожалуйста, только начинаю изучать С++.
Ситуация такая: Дано целое число, равное 2^32. Надо написать является ли число, введенное с консоли из промежутка от 1 до 2^32, простым. Это у меня написано.
Далее надо определить только сбалансированные простые числа (те, которые являются средним арифметическим между предыдущим и последующим простыми числами).
Есть идея все простые числа из промежутка закидывать в массив, а уже далее проверять на условие сбалансированного числа. Как это сделать?
Как заполнить массив числами, удовлетворяющими какому-то условию? Поиск привел только к заполнению массива с консоли, а это мне не подходит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 16:05     Как заполнить массив числами, удовлетворяющими какому-то условию?
Посмотрите здесь:

C++ Дан одномерный массив, состоящий из N вещественных элементов. 4.1. Заполнить массив случайными числами. 4.2. Найти минимальный положительный элемент.
C++ Заполнить массив нечётными числами
C++ Заполнить массив случайными числами
C++ Как заполнить трехмерный массив случайными числами
C++ Заполнить массив n*m простыми числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
15.09.2013, 21:57     Как заполнить массив числами, удовлетворяющими какому-то условию? #2
Цитата Сообщение от iamthewine Посмотреть сообщение
Дано целое число, равное 2^32. Надо написать является ли число, введенное с консоли из промежутка от 1 до 2^32, простым. Это у меня написано.
Покажите что у вас написано.
iamthewine
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 6
16.09.2013, 09:38  [ТС]     Как заполнить массив числами, удовлетворяющими какому-то условию? #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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int lim = 4294967296;
int num;
 
float IsAPrimeNumber (int x) {
    int i;
    for (i = 2; i <= sqrtl(x); i++) {
        if (x % i == 0) {
            cout << "Число не простое" << "\n";
            system ("PAUSE");
            return 0;
        }
 
    }
    cout << "Число простое" << "\n";
    system ("PAUSE");
    return 0;
}
 
 
int main () {
    setlocale(LC_CTYPE, "");
    cout << "Введите натуральное число, меньшее 2^32 = 4294967296"<< "\n";
    cin >> num;
    if ((num <= 4294967296)&&(num>0)) {
        IsAPrimeNumber(num);
    }
    else {
        cout << "Ошибка! Число не лежит в множестве натуральных чисел или превышает лимит" << "\n";
        system ("PAUSE");
    }
 
}
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
16.09.2013, 16:43     Как заполнить массив числами, удовлетворяющими какому-то условию? #4
Посмотрите здесь.
Быстрая проверка натурального числа на простоту
D3fend0r
17 / 17 / 1
Регистрация: 14.09.2013
Сообщений: 37
16.09.2013, 17:33     Как заполнить массив числами, удовлетворяющими какому-то условию? #5
вот например - алгоритм проверяет все числа в заданном диапозоне : если число простое, то сохраняем его в векторе с простыми числами (этот же вектор используеться для проверки следующих чисел); параллельно проверяем сбалансированные простые числа.
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
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    //variables
    const int lim = 4294967296;
    int number;
    bool isPrime=true;
    vector <int> prime_numbers;
    prime_numbers.push_back(2);
    vector <int> bal_prime_numbers;
 
    cout<<"please enter a number between 1 and 2^32=4294967296"<<endl;
    cin>>number;
 
    for(int i=2;i<=number;++i)
    {
        for(int p:prime_numbers) // checks if i is a prime number
        {
            if(i%p==0)
            {
                    isPrime=false;
                    break;
            }
        }
        if(isPrime) 
        {
            prime_numbers.push_back(i);
            int size =prime_numbers.size();
            if((prime_numbers.size()>2) && ((double)(prime_numbers[size-3]+prime_numbers[size-1])/prime_numbers[size-2]==2))
            {
                bal_prime_numbers.push_back(prime_numbers[size-2]);
            }
        }
        isPrime=true;
    }
    cout<<"prime numbers"<<endl;
    for(int k:prime_numbers)
    {
        cout<<k<<" ";
    }
    cout<<endl<<"balanced prime numbers"<<endl;
    for(int k:bal_prime_numbers)
    {
        cout<<k<<" ";
    }
    cout<<endl;
    system("PAUSE");
}
iamthewine
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 6
16.09.2013, 20:19  [ТС]     Как заполнить массив числами, удовлетворяющими какому-то условию? #6
D3fend0r, спасибо вам огромное!
011
9 / 9 / 0
Регистрация: 28.11.2013
Сообщений: 146
06.03.2015, 20:24     Как заполнить массив числами, удовлетворяющими какому-то условию? #7
D3fend0r,
Не могли бы Вы пояснить, что записано на 20-ой строке? (for(int p:prime_numbers))
Я синтаксис не понял.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
06.03.2015, 20:35     Как заполнить массив числами, удовлетворяющими какому-то условию? #8
Цитата Сообщение от 011 Посмотреть сообщение
Не могли бы Вы пояснить, что записано на 20-ой строке? (for(int prime_numbers))
Я синтаксис не понял.
Это из стандарта C++11, называется range-based for, перебирает все элементы контейнера.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2015, 20:35     Как заполнить массив числами, удовлетворяющими какому-то условию?
Еще ссылки по теме:

C++ Двумерный массив заполнить единицами по условию
Как заполнить массив из 4 чисел числами от 1 до 4 без повторений C++
Заполнить массив числами от 35 до 100 C++

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

Или воспользуйтесь поиском по форуму:
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,913
06.03.2015, 20:35     Как заполнить массив числами, удовлетворяющими какому-то условию? #9
Цитата Сообщение от 011 Посмотреть сообщение
Я синтаксис не понял.
Это цикл for из C++11
http://www.cplusplus.com/doc/tutorial/control/
Yandex
Объявления
06.03.2015, 20:35     Как заполнить массив числами, удовлетворяющими какому-то условию?
Ответ Создать тему
Опции темы

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