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

Найти все простые числа в заданном диапазоне и вывести их на экран - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.92
timaberezhnov
14 / 14 / 4
Регистрация: 10.09.2013
Сообщений: 67
20.11.2013, 17:57     Найти все простые числа в заданном диапазоне и вывести их на экран #1
Доброго времени суток!
Есть задачка, есть кривое решение.
Суть задачки такова: найти все простые числа до 1000 и вывести их на экран.
Помогите, пожалуйста, новичку, подправьте код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main()
{
    int i,j;
    for (i=2; i<1000; i++) {
        for (j=2; j<i; j++) if (!(i%j)) break;
        cout<<j<<" простое число.\n";
        }
          
    system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 17:57     Найти все простые числа в заданном диапазоне и вывести их на экран
Посмотрите здесь:

Найти все числа в заданном диапазоне, которые делятся на сумму своих цифр. C++
C++ простые числа в заданном диапазоне
C++ Вывести на экран все простые числа
C++ Найти все числа в заданном диапазоне, которые делятся на любую из своих цифр
C++ Найти простые числа в заданном диапазоне с помощью решета Эратосфена
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
[NovicheK]
19 / 19 / 2
Регистрация: 09.03.2012
Сообщений: 91
20.11.2013, 19:31     Найти все простые числа в заданном диапазоне и вывести их на экран #2
чтобы узнать простое ли число,можно делить на числа меньшие либо равные корню из него.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cmath>
using namespace std;
int main(){
    bool prime;
    for(int i=2;i<1000;i++){
        prime =true;
        double sqrti=sqrt((double)i);
        for(int j=2;j<sqrti+1;j++)
            if(i%j==0) {
                prime=false;
                break;
                }
        if(prime) cout<<i<<" простое число \n";
    }   
return 0;
}
timaberezhnov
14 / 14 / 4
Регистрация: 10.09.2013
Сообщений: 67
20.11.2013, 20:59  [ТС]     Найти все простые числа в заданном диапазоне и вывести их на экран #3
[NovicheK], спасибо, разобрался

Обошёлся без корней, просто добавил переменную bool, как у Вас в коде.
Всё встало на свои места)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    bool pointer;
    int i,j;
    for (i=2; i<1000; i++) {
        pointer=true;
        for (j=2; j<i; j++) if (!(i%j)) { pointer=false; break; };         
        if (pointer==true) cout<<j<<" ïðîñòîå ÷èñëî\n";
        }
          
    system ("pause");
    return 0;
}
Борисович
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 4
09.12.2015, 21:50     Найти все простые числа в заданном диапазоне и вывести их на экран #4
Всем доброго времени суток! Нужно было решить аналогичную задачку. Путем недолгих поисков в инете нашел вот такое решение :
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>
using namespace std;
void main(){
    setlocale(LC_ALL, "Rus");
 
    cout << "\t\t\t\t"Простые числа"\n\n\n\n";
 
 
    int a, b, c, n = 0;
 
    for (a = 3; a <= 1000; a++)
    {
        c = a / 2;
        int d = 0;
 
        for (b = 2; b <= c; b++)
            if ((a%b) == 0)
            {
                d++;
                break;
            }
        if (d == 0)
        {
            cout << a << "\t";
            n++;
            if ((n>0) && ((n % 10) == 0))
                cout << "\n";
        }
    }
    cout << "\n\nКоличество простых чисел: " << n << "\n\n\n";
    
}
Если кому не сложно , и не лень,прокомментируйте данный код!!!
Насчет переменной "а" - все понятно.А вот что определяют другие переменные не совсем понятно!
pavlin2000
1 / 1 / 0
Регистрация: 28.07.2013
Сообщений: 38
09.01.2016, 05:20     Найти все простые числа в заданном диапазоне и вывести их на экран #5
а что , если проверять каждое число на остаток от деления на 2,3,5,7 и если хоть один будет ноль , то число не простое, само собой, учтя в итоге их и 1?

Добавлено через 8 минут
ой, простые с 2, вроде, начинаются. ну и , естественно, корень проверять
Yandex
Объявления
09.01.2016, 05:20     Найти все простые числа в заданном диапазоне и вывести их на экран
Ответ Создать тему
Опции темы

Текущее время: 22:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru