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

Поиск простых чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему переменной присваивается произвольное значение("мусор")? http://www.cyberforum.ru/cpp-beginners/thread1152757.html
Мой черновой вариант кода. Он очень черновой так что многое не суть важно, но переменной х я присваиваю значение 0. Если после приглашения ввести набор чисел, мы введем что вроде...
C++ Как рационально применять if когда идет несколько условий подряд зависимых от первого условия (если первое исполнится другие не должны выполняться) каком случае меньше ресурсов PC будет использовано так: if(условие){}... http://www.cyberforum.ru/cpp-beginners/thread1152751.html
C++ Фрагментация RAM
Почитал о программировании встроенных систем,там говорилось о фрагментации памяти. Например: Есть элемент типа int (4 байта) и массив типа char из 2х элементов (2 байта).Памяти у нас есть 6 кб....
C++ Создать программу, создающую корректный HTML-файл с форматированием, содержащий весь текст из файла
Здраствуйте. Задание: Имеется два входных файла – файл_с_текстом и файл_словаря. Файл_с_текстом содержит текст в виде последовательностей текстовых строк, разделенных стандартным разделителем...
C++ Выделение памяти при наследовании классов http://www.cyberforum.ru/cpp-beginners/thread1152726.html
Здравствуйте! У меня есть метод который, читает память занимаемую классом. Есть несколько базовых классов и два наследуемых класса - Circle и EqTriangle. Программа выводит 168б ( Circle - 72б и...
C++ Использование циклы с параметром Вычислить седьмой член последовательности, если дана формула {x}_{i}={x}_{i-1}*2+i/2 и известно что начальное значение равно 2 подробнее

Показать сообщение отдельно
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
21.04.2014, 15:41
Решето Эратосфена: если натуральное число не делится ни на какие простые числа меньшие за него, то оно само является простым.
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
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int N;
cin >> N; //количество простых чисел
 int *M = new int [N];//создание динамического массива 
M[0]=2;//2 - первое простое число, занесённое в массив
int p=3;//p- очередное число, проверяемое на "простоту"
int n;//n- индекс последнего простого числа в массиве
for (n=1; n<N; n++)
{
a:     for (int i = 0; i<=n; i++)//для каждого элемента массива простых чисел...
       {
             if (M[i]<=p/2 && p%M[i]==0) //(делитель не может быть больше половины числа р) если p-не простое 
             {
                    p++;//то переходим к следующему числу
                    goto a;//и заново проверяем его на делимость на все найденные простые
             }
       }
//из цикла помеченного как а: выйдет в любом слуае после нахождения очередного простого р    
M[n]=p;//записываем найденное простое в массив
p++;//переходим к очередному числу для проверки на "простоту"
}
//вывод массива простых чисел
for (int i = 0; i<N; i++) 
   cout << M[i] << " ";
 delete [] M; //освобождаем память занятую под динамический массив
 system ("pause");
 return 0;
 }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru