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

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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
12.06.2012, 10:25  [ТС]     Число простых чисел от 1 до N методом решета Сундарама #2
Помогите, времени мало.
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
12.06.2012, 11:21     Число простых чисел от 1 до N методом решета Сундарама #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 Мб, сложно будет открыть).
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
12.06.2012, 12:17  [ТС]     Число простых чисел от 1 до N методом решета Сундарама #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"?
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
12.06.2012, 13:01     Число простых чисел от 1 до N методом решета Сундарама #5
Это надо копаться где то в студии самой, я в ней не работаю, не знаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 20:05     Число простых чисел от 1 до N методом решета Сундарама
Еще ссылки по теме:

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

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

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

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

Сформировать массив простых чисел, не превышающих заданное натуральное число N - C++
Доброго времени суток. Помогите, пожалуйста, найти ошибку. Задание звучит вот так: &quot;Сформировать массив простых чисел, не превышающих...

Проверить является ли введенное число суммой двух простых чисел - C++
Проверить является ли введенное число суммой двух простых чисел


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

Или воспользуйтесь поиском по форуму:
RampKiller
4 / 4 / 0
Регистрация: 09.03.2011
Сообщений: 52
13.06.2012, 20:05  [ТС]     Число простых чисел от 1 до N методом решета Сундарама #6
Народ, помогите сделать именно по заданию, срочняк.

Добавлено через 21 час 37 минут
Вверх!
Yandex
Объявления
13.06.2012, 20:05     Число простых чисел от 1 до N методом решета Сундарама
Ответ Создать тему
Опции темы

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