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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
MoNoMiZe
0 / 0 / 0
Регистрация: 20.09.2010
Сообщений: 8
#1

Вывести все простые числа в заданном интервале - C++

25.09.2010, 16:35. Просмотров 3926. Ответов 20
Метки нет (Все метки)

Доброго времени суток!

Необходима Ваша помощь в написании программы на visual c++. Программы должна выводить все простые числа из заданного промежутка (начало и конец вводятся с клавиатуры) в виде
1 3 5 7
11 13 17 19
и так далее.

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2010, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все простые числа в заданном интервале (C++):

Получить все простые числа в заданном интервале - C++
Пожалуйста помогите решить задачу, с++ вообще не понимаю, а сдавать надо. Даны натуральные числа a, b (a<b). Получить все простые числа p,...

В заданном интервале натуральных чисел определить все простые числа - C++
из заданного интервала натуральных чисел определить все простые числа

Вывести все нечетные числа в заданном интервале - C++
Кому не трудно помочь с вторым и третьим вопросом. Буду очень благодарен.Спасибо.

Вывести все числа Армстронга в заданном интервале - C++
Здравствуйте, В универе дали задание: вывести все числа Армстронга в интервале ; Понимаю что это уже давно сделали, но я хотел свою...

Вывести на консоль все числа Мерсена в заданном интервале - C++
1. Вывести на консоль все числа Мерсена в заданном интервале. Числом Мерсена называется простое число n, которое представимо в виде n=2p-1,...

Найти все простые числа в заданном диапазоне и вывести их на экран - C++
Доброго времени суток! Есть задачка, есть кривое решение. :) Суть задачки такова: найти все простые числа до 1000 и вывести их на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rajd
44 / 22 / 1
Регистрация: 20.11.2008
Сообщений: 178
25.09.2010, 18:19 #16
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Это очень похоже на безусловный тернарный оператор.
Оно вообще работает? Если даже да - никогда так не делайте - можно и без рук остаться.

о, точно не правильно написал сори за ошибку.
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
if то Вам, кстати, чем не угодил?
он длинный для этого кода.
MoNoMiZe
0 / 0 / 0
Регистрация: 20.09.2010
Сообщений: 8
25.09.2010, 18:42  [ТС] #17
не могли бы подправить код
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
bool IsSimple(int n) 
{
    if(n<1)
    return false; 
    for(int j = 2; j * j <= n; ++j)
        if (n % j == 0) 
        {
            return false;
        }
        return true;
}
 
int main()
{
        setlocale(0,"");
        int a, b, k = 1;
        cout<<"Введите начало промежутка: ";
        cin>>a;
        cout<<"Введите конец промежутка: ";
        cin>>b;
        for(int i = a; i <= b; i++)
        { 
            if(IsSimple(i))
            {
                if( i > k*10)
                cout << endl;
                cout << i << " ";
            }
        }
        getch();
        return 0;
}
куда именно надо вставить цикл по K, что бы все выводилось так как нужно?
Rajd
44 / 22 / 1
Регистрация: 20.11.2008
Сообщений: 178
26.09.2010, 05:56 #18
Цитата Сообщение от MoNoMiZe Посмотреть сообщение
куда именно надо вставить цикл по K, что бы все выводилось так как нужно?
Что за цикл по k? и для чего он тебе нужен?

Добавлено через 5 минут
ВО переделал свой код функции. жаль что сообщение свое подправить не могу, там ОШИБИЩА спс
CyBOSSeR, что помог.

C++
1
2
3
4
5
6
7
bool IsSimple(int x) {
int k=2;
while(k<=(x<<1)){
(x%k==0)?return false:k++;
}
  return true;
}
MoNoMiZe
0 / 0 / 0
Регистрация: 20.09.2010
Сообщений: 8
26.09.2010, 13:09  [ТС] #19
уже разобрался, всем еще раз спасибо, тема закрыта)
Dghek
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 3
07.05.2012, 15:36 #20
А кто нибудь знает алгоритм поиска простых чисел, чтобы он не жрал много памяти...
Ведь, к примеру, используя решето Эратосфена, на определения числа порядка 1 млн тратится около 1 Мб, а на число порядка 1 млрд 1 Гб и т.д.
Если такой алгоритм есть - подскажите.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.05.2012, 15:37 #21
Решета Аткина более экономно использует память и быстрее работает.
Для совсем больших чисел - тупо перебор всех нечетных чисел с разными эвристическими проверками на простоту, вроде теста BPSW.
Кстати, решето Эратосфена можно оптимизировать, чтобы оно ело n / 16 байт памяти, n - количество простых чисел.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 15:37
Привет! Вот еще темы с ответами:

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using std::cout; using std::cin; using...

Вывести все простые числа в заданном диапазоне, которые являются палиндромами - C++
Напишите программу , которая выводит все простые числа , которые являются палиндромами ( то есть имеют симметричную запись в десятичной...

Определить, есть ли среди чисел в заданном интервале близнецы (простые числа, разница между которыми = 2) - C++
Дано натуральное число n. Определить, есть ли среди чисел n, n+1, ..., 2n числа - близнецы, то есть простые числа, разница между которыми...

Вывести простые числа на интервале от 2 до 1000 - C++
Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется простым, если оно делится только на 1...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.05.2012, 15:37
Ответ Создать тему
Опции темы

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