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

Решето Эратосфена - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [Файлы] Запись-чтение-запись. Почему не прокатывает? http://www.cyberforum.ru/cpp-beginners/thread1170765.html
Сначала записываю в файл "а" запись "makulatura", потом читаю ее в строку h. Все ок. Но потом когда открываю файл "a" опять для записи с целью записать строку "mumumu" - ничего не записывается, а только все удаляется(почему удаляется знаю, не знаю почему не записывается). #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string h; fstream a;...
C++ Tolower для русских букв Есть символьный массив с русскими буквами: "Сегодня Прекрасная Погода". Мне нужно заглавные буквы изменить с верхнего регистра на нижний. функция tolower почему-то не работает.. Хотя на другом коде всё прекрасно с русскими буквами.. Вот собственно код, если нужно. #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <ctype.h> #include <stdio.h> #include <locale.h> http://www.cyberforum.ru/cpp-beginners/thread1170752.html
Сравнить число и строку C++
Помогите! using namespace std; string s; s=Edit1->Text.t_str(); int x; if( s == x) { ShowMessage(" вы ввели чило "); }
Error C2361: пропуск инициализации "Height" из-за метки "default" C++
Добрый день! Решила чуть изменить типичный код из учебника - и тут же появилась ошибка компилятора. Код вот такой: #include <iostream> using namespace std; const double Pi = 3.14159; double Volume (double Radius) { return (4*Pi*Radius*Radius*Radius)/3;
C++ Явное создание экземпляра класса и явная специализация шаблона класса http://www.cyberforum.ru/cpp-beginners/thread1170727.html
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких случаях применять одно и другое? Растолкуйте, плз!
C++ Задача на массивы и сумму Вопрос по условию задачи (с самим решением проблем нет) Даны массивы l1, ... , l15 ; m1, ... , m8 . Определить \huge {C}_{i}=\frac{\sum_{i=1}^{15}\left({l}_{i}-{m}_{1} \right)}{{l}_{i}} Разве может один и тот же индекс і использоваться и как параметр внешнего цикла (как индекс элемента массива), и как параметр внутренней суммы. Ведь это же абсурд! Я считаю, что параметром (счетчиком) суммы... подробнее

Показать сообщение отдельно
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59

Решето Эратосфена - C++

09.05.2014, 14:42. Просмотров 1466. Ответов 4
Метки (Все метки)

Простое число — это любое целое число, которое точно делится без остатка только само на себя и на 1. Решето Эратосфена — это способ нахождения простых чисел.

а) Создайте массив, все элементы которого имеют начальные значения 1 (истина). Элементы массива с простыми индексами останутся равными 1. Все другие элементы массива, в конечном счете, установятся равными нулю.

b) Начиная с индекса массива 2 (индекс 1 должен быть простым), каждый раз отыскивается элемент массива с единичным значением, циклически обрабатывается оставшаяся часть массива и устанавливается в нуль каждый элемент массива, чей индекс кратен индексу элемента с единичным значением. Для индекса 2 все элементы в массиве с большим чем 2 индексом и кратные 2 установятся равными нулю (индексы 4, 6, 8 и тому подобные); для индекса 3 все элементы с индексом свыше 3 и кратные 3, установятся равными нулю (индексы 6, 9, 12 и тому подобные) и т.д. Когда процесс закончится, элементы массива с единичным значением
указывают, что их индексы — простые числа. Эти индексы могут быть напечатаны.

Напишите программу, которая использует массив с 1000 элементами для определения и печати простых чисел между 1 и 999. Элемент 0 массива во внимание не принимайте.

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
int main()
{
    int arraySize = 101;        //пока возьмем 100 элементов для пробы
    int a[ arraySize ];   
    int j;
 
    for( int i = 0; i < arraySize; i++ )        //Установка всех эл.
    {                                             //  равными 1
        a[ i ] = 1;
    }
 
    for( int i = 2; i < arraySize; i++ )
    {
        j = i;
 
        for( j; j < arraySize; j++ )        //Если число простое - оставляем 1,
        {                                   //если нет - ставим 0.
            if( i % ( j + 1) == 0 )
                a[ j + 1 ] = 0;
            else                
                continue;
        }
    }
 
    for( int h = 1; h < arraySize; h++ )    //Вывод результата на экран
        cout << h << setw( 5 ) << a[ h ] << endl;
   return 0;
}
В результате появляется список индексов, которые все до единого равны "1". В чем ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru