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

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

Восстановить пароль Регистрация
 
GalkaP
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 83
26.06.2014, 02:38     Заполнить массив размером в 1000 простыми числами #1
Здравствуйте!

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

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<< или допущенные ошибки.

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

Заполнить массив простыми числами по возрастанию C++
C++ Заполнить двумерный массив размером 10 на 10 целыми числами по возрастанию
C++ Заполнить массив размером 10 случайными числами от 0 до 10
STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести C++
C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию
C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию
C++ Заполнить массив n*m простыми числами
Заполнить двумерный массив размером 7 на 7 числами, расположенными в нем по спирали C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
26.06.2014, 07:55     Заполнить массив размером в 1000 простыми числами #2
Вместо строк 23-26 во втором фрагменте, наверное.
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
26.06.2014, 08:39     Заполнить массив размером в 1000 простыми числами #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;
}
Yandex
Объявления
26.06.2014, 08:39     Заполнить массив размером в 1000 простыми числами
Ответ Создать тему
Опции темы

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