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

Вывести простые числа от 1 до 1000000 с помощью решета Эратосфена - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ valarray http://www.cyberforum.ru/cpp-beginners/thread926970.html
Помогите разобраться, в книге есть код: // studentc.h -- defining a Student class using containment #ifndef STUDENTC_H_ #define STUDENTC_H_ #include <iostream> #include <string> #include <valarray> class Student {
C++ Ping по списку адресов с применением system Здравствуйте. Возникла необходимость написать консольную программу, которая проверяет Ping-ом список адресов из файла и записывает результат в другой файл. До этого подобное было реализовано в bat-файле. Мудрить с с++ не стал бы, но для моих нужд bat не подходит. #include <iostream> #include <fstream> using namespace std; string a; //Перегружаем функцию system для удобства... http://www.cyberforum.ru/cpp-beginners/thread926969.html
C++ Приоритет преобразований внутри if
Всем привет. Рассмотрим такой код: #include <iostream> class C { typedef void (C::*fp)() const; public: operator fp() const {
Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 C++
Здравствуйте! Уже два дня не могу вызвать функцию из dll C++ в программе, написанная в C#. Программа пишется в MS VS 2008 Win 7 64bit. Сначала опишу С++ проект. Создаю обычное пустое C++ dll приложение. Header файл main.h: // main.h #include <stdio.h> __declspec(dllexport) void Demo();
C++ Коррекция http://www.cyberforum.ru/cpp-beginners/thread926858.html
#include <iostream> #include <string> #include <cstring> int main() { using namespace std; char charr; string str; cout << "Lenght of string in charr before input: " << strlen(charr) << endl;
C++ Не удается открыть файл *.lib в MSVS2010 Добрый день! Мне удалось устранить ряд ошибок которые я писал в теме. Но теперь "вываливается" другая ошибка: 1>LINK : fatal error LNK1104: не удается открыть файл "Pr1.lib" Пробывал подключать *.lib вот так: #pragma comment (lib, "Pr1.lib") и так: Project -> Add.. как внешнюю зависимость. подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.07.2013, 20:33     Вывести простые числа от 1 до 1000000 с помощью решета Эратосфена
Цитата Сообщение от salam Посмотреть сообщение
не подумайте, что придираюсь, но ведь это правда бессмысленно...
если массив не из нулей, то совсем не бессмысленно

Добавлено через 7 минут
Цитата Сообщение от salam Посмотреть сообщение
здесь можно сразу писать j = i*i. доказывается так же, как в разложении на простые.
это я знаю. мне больше нравится решето Эратосфена в таком виде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Eratosfen(char *a, long n)
{
    long i, j, d, bound = sqrt((double)n);
    a[0] = a[1] = 0; a[2] = 1;
    for(i = 4; i < n; i += 2)
        a[i] = 0;
    for(i = 3; i < n; i += 2)
        a[i] = 1;
    i = 3;
    while (i <= bound)
    {
        d = i << 1;
        for(j = i * i; j < n; j += d)
            a[j] = 0;
        i += 2;
        while (i <= bound && !a[i])
            i += 2;
    }
}
может есть и побыстрее

Добавлено через 24 минуты
salam, приведите свой алгоритм, может я что-то упускаю и еще можно ускорить алгоритм.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru