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

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

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

Заполнить массив размером в 1000 простыми числами - C++

26.06.2014, 02:38. Просмотров 414. Ответов 2
Метки нет (Все метки)

Здравствуйте!

Нужна помощь в решении двух похожих задач:

1. Найти все простые числа в диапазоне от 2 до 1000 и вывести их на экран.

У меня получилось вот что:


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;
void main()
{
    //используем метод перебора делителей
    int i;
    int j;
    for (i = 3; (i <= 1000); i=+2)//перебираем всё нечётные числа из диапазона
    {
        for (j = 2; j < i;)//перебираем делители < претендента, т. к. простое число делится на себя
        {
            if (j>sqrt(i))//по теории чисел: перебирать надо только числа, не превосходящие корня из претендента. Это позволит ускорить процесс, т. к. программе не нужно перебирать ненужные делители.
            {
                break;
            }
            if (i%j == 0)//если претендент делится на какой-либо делитель кроме j=1 и j=i, то он не является простым числом
            {
                break;
            }
            else
            {
                j++;
                
                continue;
            }
        }
        
    }
}
Но не могу найти места для cout<<.




2. Заполнить массив размером в 1000 простыми числами.
Получилось похоже:

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
#include<iostream>
using namespace std;
void main()
{
    int array[1000];
    int i;//вероятное простое число
    int d; //делители
    
 
    
    for (i = 3;; i+2)//перебираем нечётных претендентов в простые числа
    {
        for (d = 2; d < i; d++)//перебираем делители
        {
            if (d>sqrt(i))//по теории чисел: перебирать надо только числа, не превосходящие корня из претендента. Это позволит ускорить процесс, т. к. программе не нужно перебирать ненужные делители
            {
                break;
            }
                if (i%d == 0)
            {
                    break;//если претендент делится на какой-либо делитель кроме d=1 и d=i, то он не является простым числом
            }
                else
                { 
                    continue;
                }
        }
    }
}

Но не могу найти места для cout<< или допущенные ошибки.

Благодарю за внимание и помощь!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 02:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив размером в 1000 простыми числами (C++):

Заполнить массив n*m простыми числами - C++
Здрасьте! Помогите, пожалуйста, с решением задачи :impossible: &quot;Двумерный массив размерности m*n заполнен простыми числами. Найти номера...

Заполнить массив простыми числами по возрастанию - C++
Нужно заполнить массив из n элементов простыми числами по возрастанию #include&lt;iostream&gt; using namespace std; int main() ...

Заполнить массив десятью первыми простыми числами - C++
Заполнить массив десятью первыми простыми числами

Заполнить массив первыми 100 простыми числами - C++
Объявите одномерный целочисленный массив, в котором не более 100 элементов. Выполните генерацию массива первыми 100 простыми числами....

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....

Заполнить массив размером 10 случайными числами от 0 до 10 - C++
#include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;iostream&gt; using namespace std; int main() { int n = 10; vector&lt;int&gt;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
26.06.2014, 07:55 #2
Вместо строк 23-26 во втором фрагменте, наверное.
0
Renji
1916 / 1314 / 298
Регистрация: 05.06.2014
Сообщений: 3,758
26.06.2014, 08:39 #3
Но не могу найти места для cout<<.
C++
1
2
3
4
5
6
7
8
for(int i=3;i<1000;i+=2)
{
    bool flag=true;
    for(int j=3;flag&&j<=sqrt(i);j+=2)
        flag=flag&&(i%j);
    if(flag)
        cout<<i<<endl;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2014, 08:39
Привет! Вот еще темы с ответами:

Заполнить двумерный массив размером 10 на 10 целыми числами по возрастанию - C++
требуется написать программу, заполняющую двухмерный массив размерностью 10 на 10 целыми числами по возрастанию. (помогите плиз не могу...

Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию - C++
Есть такое задание: Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию и вывести в выходной поток...

Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию - C++
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток вот пример но в...

Заполнить двумерный массив размером 7 на 7 числами, расположенными в нем по спирали - C++
Заполнить двумерный массив размером 7 на 7 числами 1,2,..49, расположенными в нем по спирали! Помогите пожалуйста написать программу)


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

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

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