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

Сформировать массив простых чисел не больших заданного натурального числа N - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ VS2010 режим отладки без системных файлов http://www.cyberforum.ru/cpp-beginners/thread520629.html
Пишу 3д-игрушку, при отладке не хочется лазить по коду, который написан не мной, а отладчик гоняет меня по всем системным файлам. Это можно как-то отключить? Пишу на C++.
C++ Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы Помогите пожалуйста задали написать, а я толком не могу понять как это делать. 6Дана матрица А размерностью nхm. Сформировать одномерный массив В, элементами которого являются номера первых... http://www.cyberforum.ru/cpp-beginners/thread520624.html
Класс, который удаляет из строки все пробелы C++
Нужен класс, который удаляет из строки все пробелы. Как сие лучше реализовать? Придумалось вот такое: #include <iostream> #include <string> #include <algorithm> class EraseChar { //...
C++ fopen не открывает файл
Файл существует, с нормальными атрибутами, не открыт... FILE *pFile = fopen("C:\\settings.txt", "r"); errno - 2 Почему файл не открывается?
C++ Строка + число http://www.cyberforum.ru/cpp-beginners/thread520607.html
Перед записью в файл функция проверяет не существует ли уже файл с данным именем, если существует - добавляет к имени _номер. Моё недосыпающее сознание нашкодило такой костыль: void...
C++ не совсем понимаю код *указатели изучаю указатели, столкнулся с кодом не совсем могу понять что происходит в функции *g_s, особенно это условие *p2 && *p2 == *p #include <iostream> #include <locale> using namespace std; ... подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.03.2012, 11:52
HackSign, автору надо простые числа, а не случайные.
IlyaCool, я думаю, решето Эратосфена Вам подошло бы.

Вот здесь обсуждается подобная тема: http://www.cyberforum.ru/cpp-beginne...ead343023.html

А вот один из примеров генерации простых чисел до заданного 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
#include <cmath>
#include <vector>
#include <iostream>
 
int main() 
{
        unsigned limit = 1000;
                
        std::vector<bool> is_primes(limit + 1, false);
        unsigned sqrt_of_limit = static_cast<unsigned>(sqrt(static_cast<double>(limit)));
 
        for (unsigned i = 1; i <= sqrt_of_limit; ++i) 
        {
                for (unsigned j = 1; j <= sqrt_of_limit; ++j) 
                {
                        unsigned x = i * i;
                        unsigned y = j * j;
                        unsigned n = 4*x + y;
 
                        if (n <= limit && (n % 12 == 1 || n % 12 == 5))
                                is_primes[n].flip();
 
                        n -= x;
                        if (n <= limit && n % 12 == 7)
                                is_primes[n].flip();
 
                        n -= 2*y;
                        if (x > y && n <= limit && n % 12 == 11)
                                is_primes[n].flip();
                }
        }
 
        for (unsigned i = 5; i <= sqrt_of_limit; i += 2) 
        {
                if (is_primes[i]) 
                {
                        unsigned x = i * i;
                        for (unsigned j = x; j <= limit; j += x)
                                is_primes[j] = false;
                }
        }
 
        is_primes[2] = is_primes[3] = true;
 
 
        for (unsigned i = 0; i < limit; ++i) 
        {
                if (is_primes[i])
                        std::cout << i << std::endl;
        }
 
        return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru