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

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

Войти
Регистрация
Восстановить пароль
 
silver-x
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 29
#1

Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число - C++

13.11.2012, 18:48. Просмотров 262. Ответов 5
Метки нет (Все метки)

Друзья! Прошу помощи с задачками, кто чем может. А то препод сказал НАДО. А меня даже чайником назвать нельзя( Вот эти задачи.
4. Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число.
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 18:48     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число
Посмотрите здесь:

C++ Простое число и массивы
Простое число(проверьте пожалуйста) C++
простое число C++
Простое число C++
простое число C++
C++ простое число
Найти простое число в массиве C++
Простое число C++
итое простое число C++
Что означает двоичный поиск?Как определить позицию, где в этот массив можно вставить число x C++
Массив: Вычислить А в степени n, где п - натуральное число C++
Обнулить строки матрицы, где находится наибольшее простое число C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_289
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 12
13.11.2012, 20:03     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #2
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
    int sz;
    cout<<"enter array size: ";
    cin>>sz;
    int mas[sz];
    for(int i=0;i<sz;++i)
        mas[i]=i+1;
    cout<<"Array: ";
    for(int j=0;j<sz;++j)
        cout<<mas[j];
    return 0;
}
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
13.11.2012, 23:27     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #3
alex_289, Ваш код неверен, ведь в задании сказано - что в массиве должны быть только простые числа. А у Вас просто подряд числа от 1 до sz.
Такое использование массивов переменной длины может далеко не на всех компиляторах поддерживаться, насколько мне изхвестно. Лучше взять динамические структуры или использовать stl контейнеры.
alex_289
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 12
14.11.2012, 04:24     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #4
sorry mistake
C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
bool IsSimple(long *A, int n, long val)
{
    for(int i = 0; i < n; i++)
    {
        if(A[i] * A[i] > val) return true;
        if(val % A[i] == 0) return false;
    }
    return true;
}
 
void GenerateFirstNSimple(long *A, int n)
{
    A[0] = 2;
    int cur_n = 1;
    long cur_val = 3;
    while(cur_n < n)
    {
        if(IsSimple(A, cur_n, cur_val) == true) A[cur_n++] = cur_val;
        if(cur_val > 10 && (cur_val + 2) % 5 == 0) cur_val += 4;
        else cur_val += 2;
    }
}
 
int main()
{
    int sz;
    cout<<"enter size: ";
    cin>>sz;
    long *Array = new long[sz];
    GenerateFirstNSimple(Array, sz);
    for(int i = 0; i < sz; i++)
    {
        if(i % 20 == 0) cout<<"\n";
        cout<<Array[i]<<" ";
    }
    delete[]Array;
    return 0;
}
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
14.11.2012, 08:19     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #5
Цитата Сообщение от alex_289 Посмотреть сообщение
C++
1
2
3
4
int sz;
cout<<"enter array size: ";
cin>>sz;
int mas[sz];
при таком объявлении массива переменной sz должно быть присвоено значение перед компиляцией. Либо (то о чем подразумевали вы) массив должен быть объявлен динамически, как тут:
Цитата Сообщение от alex_289 Посмотреть сообщение
C++
1
2
3
4
int sz; 
cout<<"enter size: "; 
cin>>sz; 
long *Array = new long[sz];
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
14.11.2012, 14:32     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #6
Цитата Сообщение от Pavell Посмотреть сообщение
при таком объявлении массива переменной sz должно быть присвоено значение перед компиляцией. Либо (то о чем подразумевали вы) массив должен быть объявлен динамически, как тут:
Некоторые компиляторы поддерживают массивы переменной длины. Т.е. необязательно знать размер массива на этапе компиляции. Ищите информацию в google по фразе "массивы переменной длины c++"
Но массивы переменной длины не являются динамическими массивами.
Yandex
Объявления
14.11.2012, 14:32     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число
Ответ Создать тему
Опции темы

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