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

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

Войти
Регистрация
Восстановить пароль
 
Bardo
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 23
#1

Простые числа. Решето Эратосфена - C++

17.11.2014, 19:05. Просмотров 468. Ответов 5
Метки нет (Все метки)

Здравствуйте!
Нужна ваша помощь, не могу понять условие этой задачи:
Даны натуральное число n, целые числа a1,.....,an. Рассмотреть отрезки последовтельности a1, ....., an ( подпоследовательности идущих подряд членов), состоящие из простых чисел. В каждом случае получить наибольшую из длин рассматриваемых отрезков.

Написать нужно через функции. Тоесть сам алгоритм нахождения простых чисел я запишу в отдельной функции. А что за отрезки последовательности и как их получить не понимаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 19:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простые числа. Решето Эратосфена (C++):

Решето Эратосфена: найти все простые числа в интервале от A до B включительно - C++
По введённым числам A и B вывести все простые числа в интервале от A до B включительно. Входные данные В единственной строке вводятся...

Найти все простые числа, не превышающие число n, используя решето Эратосфена - C++
Дано натуральное число n (n>=2). Найти все простые числа, не превышающие число n, используя решето Эратосфена. Решетом Эратосфена...

Решето Эратосфена. По номеру простого числа найти это число - C++
Найти n-ое по счёту простое число. Пример: 1 2 3 4 5 6 7 8 9 10 11 Из них простые 1 2 3 5 7 11 порядковые номера 123456 ...

Вывести простые числа от 1 до 1000000 с помощью решета Эратосфена - C++
Вывести список простых чисел от 1 ого до млн.(1000000) с помощью решета иратосфена. Помогите решить пож.

Найти простые числа в заданном диапазоне с помощью решета Эратосфена - C++
Задача: вывести простые числа в диапозоне от А до В. ( 2 ≤ А и ≤ В ≤ 100000 ) Если таких чисел нет - вывести "Fol". Желательно с...

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

5
OnePiece
33 / 33 / 22
Регистрация: 22.02.2014
Сообщений: 107
17.11.2014, 19:16 #2
Ты идёшь по массиву и встречаешь первое простое число.
Сохраняешь позицию где ты его встретил.
Идёшь дальше, пока не встретишь не простое число.
Это и есть твой отрезок простых чисел.
Считаешь длину отрезка, сохраняешь ее и идёшь дальше.
0
Bardo
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 23
17.11.2014, 19:25  [ТС] #3
Сохраняешь позицию где ты его встретил.
Идёшь дальше, пока не встретишь не простое число.
Вот мне и интересно как это сделать в студии.
На данный момент что у меня есть, это функция которая находит в массиве простые числа,все.
0
OnePiece
33 / 33 / 22
Регистрация: 22.02.2014
Сообщений: 107
17.11.2014, 19:27 #4
Что возвращает функция после нахождения?
Просто можно переписать функцию, добавив туда то, что я написал раннее.
0
Bardo
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 23
17.11.2014, 19:35  [ТС] #5
Вот код функции:
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 "math.h"
 
using namespace std;
 
int Prost(int argc, char* argv[])
{
    int *Rg;
    int i,j,n;
 
    cout << "Enter n: ";
    cin >> n;
 
    Rg=new int[n];
 
    for (i=0; i<n; i++) Rg[i]=i;
 
    for (j=2; j <= sqrt(n); j++)
        for (i=1; i<n; i++)
            if (((i % j) == 0) && (i != j)) Rg[i]=0;
 
    cout << "Primary numbers in range [1," << n <<"] are:" << endl;
 
    for (i=1; i < n; i++) 
        if (Rg[i] > 0) cout << Rg[i] << endl;
 
    delete [] Rg;
 
    return 0;
}
Простые числа с массива.
0
OnePiece
33 / 33 / 22
Регистрация: 22.02.2014
Сообщений: 107
17.11.2014, 20:15 #6
Как то так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int flag = 1;
dlinna = 0;
for (i=0; i<n; i++)
{
    if (Rg[i]!=0 && flag )
    {
        nachalo=i; 
        flag = 0;
    }
    if (Rg[i]==0 && !flag)
    {
        flag=1;
        if (dlinna< i-nachalo)
            dlinna = i - nachalo;
    }
        
}
0
17.11.2014, 20:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 20:15
Привет! Вот еще темы с ответами:

Решето Эратосфена - C++
Здравствуйте. Реализовал алгоритм &quot;Решето Эратосфена&quot; в виде класса. Взгляните, пожалуйста, и скажите, где я не прав. Спасибо. ...

Решето Эратосфена - C++
Кому надо - программа &quot;Решето Эратосфена&quot; на C++. Записывает в файл 1 000 000 первых простых чисел за 1/10 секунды (без вывода)!!! ...

Решето Эратосфена - C++
Дано число N (2&lt;=N &lt;=10000), найдите и выведите простые числа между 2 и данным N. Простое число - число, которое может быть разделено...

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


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

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

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