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

Вывод простых чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Two questions about C++ http://www.cyberforum.ru/cpp-beginners/thread954050.html
1.Почему проекты C++ так много весят,к примеру самый простой проект 10мб. А .cpp файл килобайт... 2.Хотел бы узнать о линковщике: а)Я должен указывать функции и т.п.,которые я буду использовать в...
C++ Заполнение массива Как заполнить массив числами от 1 до 100000 ? А то не резон как то писать int mass = {1,2,3,4,.....} И еще не подскажете как заолнить массив только четными числами до 100 например. Тоеть... http://www.cyberforum.ru/cpp-beginners/thread954036.html
C++ Константы, переменные
Отпишите пожалуст с начала до конца что происходит в этой программе =) void main() { //Описание переменных целого типа short nS; int nI; long nL;
C++ max [NaN, число] vs max [число, NaN]
объясните пожалуйста, в чем прикол? double a = numeric_limits<double>::quiet_NaN(); double b = 1.0; double c = max(b, a); // с = 1.0 double d = max(a, b); // d = #NaN почему так работает...
C++ Числа Каталана,можно ли проще? http://www.cyberforum.ru/cpp-beginners/thread953965.html
Задание :Числа Каталана Cn, которые играют большую роль в комбинаторике (например, Cn равно числу полных бинарных деревьев с n+1 листьями), могут быть вычислены по формуле: Cn = (2n)! / ((n+1)! n!)...
C++ Разработать класс "вектор" и реализовать операцию векторного умножения векторов Разработать класс "вектор" и реализовать операцию векторного умножения векторов #include <vcl.h> #include <vector> #include <conio.h> #include <iostream.h> #pragma hdrstop #pragma argsused... подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
14.09.2013, 03:46

Не по теме:

ОМГ


Народ, ну давайте пользоваться поиском, сначала.
BF_, это как-то печально. Абсолютно топорная реализация. Неинтересная, неоптимальная и не очень красивая. Весьма читаемая только потому, что программа не очень большая.
Вот другой вариант, покруче. Комментарии на ломаном английском, если надо - переведу.

Много строк
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
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
 
// This function return vector of primes unsigned integer
vector<unsigned> getPrimes ( unsigned from, unsigned to ) { // both inclusive
    vector<unsigned> primes; // declaration of result vector
    bool *isprime = new bool[ to+1 ]; // creating sieve of Eratosthenes
    memset ( isprime, 0xFF, to ); // setting all marks as true so every number now is prime
    unsigned n = 2; // start from 2 becouse 1 obviously prime (or not prime - it's not a actual question here)
    for ( ; n*n <= to; n++ ) { // cycle throught all integers (lesser or equal than 'to')
        if ( isprime[ n ] ) { // if 'n' actualy is prime
            for ( unsigned i = n*n; i <= to; i += n ) { // than cycle throght all divisible by 'n' greater than square of 'n'
                isprime[ i ] = false; // and mark them as non-prime
            }
 
            if ( n > from ) { // also, if one included by range
                primes.push_back ( n ); // push it back into vector
            }
        }
    } // end of sieve
 
    n = std::max ( n, from ); // and, after sieve
    for ( ; n <= to; n++ ) {  // we go to the end of our range
        if ( isprime[ n ] ) { // in order to catch all remaining primes
            primes.push_back ( n ); // and push it back into vector
        }
    }
 
    return primes; // as final - return vector of primes
}
 
int main () {
    int line = 0; // just set it to -1 if you want to miss print line-breaker
    // cycle below just prints primes
    for ( auto prime: getPrimes ( 100, 500 ) ) {
        cout << prime << " ";
        if ( line != -1 ) {
            line++;
            if ( !(line%5) ) cout << endl; // end line-breaker, if line != -1
        }
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru