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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.92
timaberezhnov
14 / 14 / 4
Регистрация: 10.09.2013
Сообщений: 67
#1

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

20.11.2013, 17:57. Просмотров 8569. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Есть задачка, есть кривое решение.
Суть задачки такова: найти все простые числа до 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 17:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти все простые числа в заданном диапазоне и вывести их на экран (C++):

Найти все простые числа в заданном диапазоне - C++
Найти все простые числа в промежутке между натуральными числами а и b (а &gt; 2000, b - а ≥ 20)

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

Найти простые числа в заданном диапазоне с помощью решета Эратосфена и вывести их в файл - C++
Для зачета задали написать программу для нахождения простых чисел от 1 до 1000000000 и вывод их в файл,чтобы программа делала все это...

Вывести на экран все числа, делящиеся на 3 в заданном диапазоне - C++
вывести на экран все числа, делящиеся на 3 в диапазоне. Результат правильный для диапазона 11 ... 20 . Но для диапазона 1.. 20 уже нет ....

Найти простые числа в заданном диапазоне (циклы) - C++
Найти простые числа в диапазоне от 2 до 1000 цикл в цикле с помощью циклов for

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

5
[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;
}
1
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;
}
1
Борисович
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";
    
}
Если кому не сложно , и не лень,прокомментируйте данный код!!!
Насчет переменной "а" - все понятно.А вот что определяют другие переменные не совсем понятно!
0
pavlin2000
1 / 1 / 0
Регистрация: 28.07.2013
Сообщений: 40
09.01.2016, 05:20 #5
а что , если проверять каждое число на остаток от деления на 2,3,5,7 и если хоть один будет ноль , то число не простое, само собой, учтя в итоге их и 1?

Добавлено через 8 минут
ой, простые с 2, вроде, начинаются. ну и , естественно, корень проверять
0
N13M12
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 2
20.02.2018, 19:01 #6
#include <iostream>
using namespace std;
int main ()
{
setlocale(0, "res");
cout << "Enter the size: ";
int size;
cin >> size;
int count = 0;
for(int i = 2; i < size; i++)
{
count = 0;
for (int j = 1; j <= i;j++)
{
if(i % j == 0)
{
count++;
}
}
if(count <= 2)
{
cout << i << " ";
}
}
cout << endl;
return 0;
}
0
20.02.2018, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2018, 19:01
Привет! Вот еще темы с ответами:

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

Вывести на экран числа в заданном диапазоне в виде матрицы - C++
41 42 43 44 ... 50 51 52 53 54 ... 60 61 62 63 64 ... 70 71 72 73 74 ... 80 Заранее благодарю.

Найти все простые числа в диапазоне - C++
Вообщем, такая дилемма, С++ только начали, уже задали задачу: пользователь вводит начало и конец диапазона, нужно вывести все простые...

Вывести все целые числа в заданном диапазоне - C++
Ребят, нужна помощь, только начали c++ и уже завал. Нужна программа, которая выводит целые числа от A до B, когда a&lt;b, если a&gt;=b - ошибка....


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

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

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