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

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

Восстановить пароль Регистрация
 
silver-x
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 29
13.11.2012, 18:48     Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число #1
Друзья! Прошу помощи с задачками, кто чем может. А то препод сказал НАДО. А меня даже чайником назвать нельзя( Вот эти задачи.
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++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
C++ Дано натуральное число. Найти ближайшее простое число
C++ простое число
Дано простое число. Составить функцию,которая будет находить следующее за ним простое число. C++
Функции. Проверить, простое число или нет. Увеличить его значение на натуральное число M. Проверить, осталось ли оно простым 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-е простое число
Ответ Создать тему
Опции темы

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