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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
#1

Число простых чисел от 1 до N методом решета Сундарама - C++

09.06.2012, 11:54. Просмотров 997. Ответов 5
Метки нет (Все метки)

Не врубаюсь как сделать.

Проект С++, использующий динамическую библиотеку MSVCRT.dll вместо обычной MSVCRT90.dll (http://habrahabr.ru/post/87016/). Консольное приложение, считающее число простых чисел от 1 до N методом решета Сундарама (http://ru.wikipedia.org/wiki/Решето_Сундарама).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 11:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Число простых чисел от 1 до N методом решета Сундарама (C++):

Реализовать генератор простых чисел с использованием решета Эратосфена и перебора делителей - C++
В этой задаче мы реализуем генератор простых чисел. Простыми называются положительные целые, не имеющие делителей кроме 1 и самого числа....

Создать программу, которая позволяет ввести целое число n и вывести это число в виде произведения простых чисел - C++
Здравствуйте. Не могли бы знающие люди помочь новичку с с++. суть проблемы вот: Создать программу, которая позволяет ввести целое...

Найти простые числа пользуясь методом решета Эратосфена НЕ используя массивы - C++
Задача формулируется простыми словами: найти простые числа 0..N пользуясь методом решета Эратосфена НЕ используя массивы. Препод сказал...

Является ли число N суммой 2 простых чисел? - C++
Написать программу, которая проверит, является ли число N суммой 2 простых чисел Я пока новичок и накосячил здесь #include...

выбрать случайное число из трехзначных простых чисел - C++
Есть функция, вычисляющая трехзначные простые числа,. Думал,записывать их файл и оттуда считывать случайно какое-то число.И операцию,...

Дано число n; вычислить, сколько простых чисел от 2 до n - C++
как решить через стандартные ф-ии?

5
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
12.06.2012, 10:25  [ТС] #2
Помогите, времени мало.
0
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
12.06.2012, 11:21 #3
Проект уж как нибудь сами создадите, ок?
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
#include <iostream>
#include <fstream>
#include <cmath>
 
#define N 500000000
 
int main()
{
    std::ofstream file("primes.txt");
    int sqr = (sqrt(2*N+1) - 1)/2;
    std::vector<bool> number(N, true);
    int count = 0;
 
    for (int i = 1; i <= sqr; i++)
        for (int j = i; j <= (N-i)/(2*i + 1); j++)
            number[i+j+2*i*j] = false;
 
    std::cout << "Counting is end. Writing in file...\n";
 
    for (int i = 0; i < N; i++)
        if (number[i])
        {
            count++;
            if (count % 10 == 0)
                file << "\n";
            file << i*2 + 1 << " ";
        }
    std::cout << "\nPrime numbers from 1 to " << 2*N+1 << " = " << count;
    return 0;
}
код считает кол-во простых чисел от 1 до 2N+1 (т.е. от 1 до 1 000 000 001 в данном случае) и пишет эти простые числа в файл (советую уменьшить N, а то файл будет на 500 Мб, сложно будет открыть).
1
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
12.06.2012, 12:17  [ТС] #4
Цитата Сообщение от Vandris Посмотреть сообщение
Проект уж как нибудь сами создадите, ок?
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
#include <iostream>
#include <fstream>
#include <cmath>
 
#define N 500000000
 
int main()
{
    std::ofstream file("primes.txt");
    int sqr = (sqrt(2*N+1) - 1)/2;
    std::vector<bool> number(N, true);
    int count = 0;
 
    for (int i = 1; i <= sqr; i++)
        for (int j = i; j <= (N-i)/(2*i + 1); j++)
            number[i+j+2*i*j] = false;
 
    std::cout << "Counting is end. Writing in file...\n";
 
    for (int i = 0; i < N; i++)
        if (number[i])
        {
            count++;
            if (count % 10 == 0)
                file << "\n";
            file << i*2 + 1 << " ";
        }
    std::cout << "\nPrime numbers from 1 to " << 2*N+1 << " = " << count;
    return 0;
}
код считает кол-во простых чисел от 1 до 2N+1 (т.е. от 1 до 1 000 000 001 в данном случае) и пишет эти простые числа в файл (советую уменьшить N, а то файл будет на 500 Мб, сложно будет открыть).
Спасибо, а где предусматривается "Проект С++, использующий динамическую библиотеку MSVCRT.dll вместо обычной MSVCRT90.dll"?
0
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
12.06.2012, 13:01 #5
Это надо копаться где то в студии самой, я в ней не работаю, не знаю
0
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
13.06.2012, 20:05  [ТС] #6
Народ, помогите сделать именно по заданию, срочняк.

Добавлено через 21 час 37 минут
Вверх!
0
13.06.2012, 20:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 20:05
Привет! Вот еще темы с ответами:

Задано целое число N. Найдите сумму простых чисел до N - C++
С. Задано целое число N. Найдите сумму простых чисел до N. 1&lt;=N&lt;=1000 C.in 5 C.out 10 comment (2+3+5=10)

Разложить большое число на произведение двух простых чисел - C++
Дано очень большое число (длинная арифметика). Оно представляет из себя произведение двух простых чисел. Найти эти числа. Это мой...

Дано число А. Найдите 5 простых чисел которые больше А. - C++
Дано число А. Найдите 5 простых чисел которые больше А.(с помощью цикла с пред условием)

Вычислить k-тое число последовательности целых простых чисел - C++
Уважаемые эксперты, пожалуйста подскажите как правильно написать программу. Необходимо вычислить k-тое число последовательности целых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.