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

Найти все простые числа, не превышающие число n, используя решето Эратосфена - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ поиск операторов в строке http://www.cyberforum.ru/cpp-beginners/thread178774.html
здравствуйте.подскажите пожалуйста каким образом можно организовать поиск в тексте операторов IF?
C++ подскажите как написать єту программу Дано натуральные числа n,b1,b2,...,bn.Найти те члены bk последовательности b1,b2,...,bn,которые при делении на 7 дают остаток 1,2 или 5. я только началаучить С/С++,точно только знаю что здесь нужно использовать цикл "for" http://www.cyberforum.ru/cpp-beginners/thread178770.html
Чтение csv файла C++
csv name1:vasya; name2:kolya; ... есть готовые решения для чтения таких файлов? самому влом писать парсер. На первый раз предупреждение.
Вывод данных в текстовый файл C++
В программе получил несколько динамических массивов. Необоходимо вывести их в текстовый файл (мне потом в экселе графики по этим данным строить). Не могли бы привести пример какой-нить, а то я ваще синтаксиса подобных операций не знаю. Отдельно скажу сразу: я прогаю именно на Си, а все примеры какие нашел пока - используют непонятные пока для меня методы Си++
C++ Соритрока массива http://www.cyberforum.ru/cpp-beginners/thread178755.html
Здравствуйте! Помогите пожалуйста! Нужно написать программу,в которой вводиться n элементный массив с клавиатуры,обрабатывается (делает так,чтобы сначала были положительные значения,а затем отрицательные) и выводится этот массив на экран. (массив статический) Затем программа вводит 2-х мерный массив nXm с клавиатуры, преобразовывает его(меняет порядок элементов на обратный(построчно) ). n и m...
C++ Кодировка текста в c++ Привет всем ребята помогите пожалуйста с задачкой надо написать программу которая меняет местами буквы в тексте.надо разделить текст на группы скажем каждая по 3 буквы и в этих группах поменять местами буквы. буду признателен за каждый совет по решению задачи. Заранее спасибо. подробнее

Показать сообщение отдельно
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
20.10.2010, 14:43     Найти все простые числа, не превышающие число 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
49
50
51
52
53
54
55
56
57
58
59
60
/*Дано натуральное число n (n>=2). Найти все простые числа, не превышающие число n, используя решето Эратосфена. 
Решетом Эратосфена называется следующий метод. Выпишем подряд все целые числа от 2 до n. 
Первым простым числом является число 2. Подчеркнем его, а все больше него числа, кратные числу 2, вычеркнем. 
Первым числом в ряду чисел, которые остались, является число 3. 
Подчеркнем его как простое число, а все больше него числа, кратные числу 3, вычеркнем. 
Первым числом среди оставшихся есть число 5, поскольку 4 уже зачеркнуто. 
Подчеркнем его как простое число, а все больше него числа, кратные числу 5, вычеркнем и т.д.
*/ 
 
#include <iostream>
 
#define   stop __asm nop
using namespace std;
 
int main()
{
    int n,count=0,el=2;
    cin>>n;
    int*ar=new int [n-1];
    
    //заполним массив от 2 до n
    for(int i=0;i<n-1;++i)
    {ar[i]=el++;}
    
    //Найдем все простые числа, не превышающие число n, используя решето Эратосфена.
    for (int i=0;i<n-1;++i)
       {
           for (int j=i+1;j<n;++j)
           {
               if(ar[i]==0)
               {
                   count++;
                   break;
               }
               else if(j<n-1&&ar[j]%ar[i]==0)
               {
                   ar[j]=0;
               }
            }
       }
    
    //перенесем все найденные числа в новый массив и распечатаем их
    int j=0;
    int*tmp=new int[n-1-count];
    for (int i=0;i<n-1-count;++i)
       {
           while(j<n-1)
           {
               if(ar[j]){tmp[i]=ar[j];++j;break;}
               ++j;
           }
           cout<<tmp[i]<<" ";
       }
    
    delete[]tmp;
    delete[]ar;
    ar=0;tmp=0;
stop
    return 0;
}
 
Текущее время: 01:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru