Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Аннaa
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 115
1

Прокомментировать код

31.05.2015, 13:52. Просмотров 843. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
static const int N = 1000;
 
int main()
  { int i, a[N];
    for (i = 2; i < N; i++) a[i] = 1;
    for (i = 2; i < N; i++)
      if (a[i])
        for (int j = i; j*i < N; j++) a[i*j] = 0;
    for (i = 2; i < N; i++)
      if (a[i]) cout << " " << i;
    cout << endl;
    return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2015, 13:52
Ответы с готовыми решениями:

Прокомментировать код
Нужна помощь. Необходимо поставить комментарии к каждой строке программы. ...

Прокомментировать код
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include...

Прокомментировать код
Задание: Написать программу, которая считывает текст из файла и выводит на...

Прокомментировать код
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; #include &lt;stdlib.h&gt;...

Прокомментировать код
что как и для чего typedef struct{ char name; citizen_t **childs; int...

5
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
31.05.2015, 14:12 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> //подключение стандартной библиотеки ввода-вывода
using namespace std; //пространство имён. Чтобы писать "cout << endl;" вместо "std::cout << endl;"
 
static const int N = 1000; //глобальная переменная. В данном случае (слово const) это константа, то есть изменить её значение невозможно. Сразу записываем её значение (1000)
 
int main()//главная функция. Здесь стартует программа.
{ 
int i, a[N]; //переменная i целого типа и целочисленный массив размером 1000
 
for (i = 2; i < N; i++) a[i] = 1; //цикл. Возможно ошибка, потому что нумерация элементов в массиве идёт с нуля, а не с двойки. Идёт инициализация элементов массива с 2 до конца значением "1". В элементах с индексами 0 и 1 находится "мусор", абсолютно случайные значения!!!
 
for (i = 2; i < N; i++){//опять цикл. Поставил скобки.
  if (a[i])
    for (int j = i; j*i < N; j++) a[i*j] = 0;
}
 
for (i = 2; i < N; i++)
if (a[i]) cout << " " << i;
cout << endl;
return 0; //выход из программы
}//конец главной функции
0
Аннaa
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 115
31.05.2015, 14:20  [ТС] 3
спасибо!!
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,938
31.05.2015, 14:28 4
Лучший ответ Сообщение было отмечено Аннaa как решение

Решение

Цитата Сообщение от Рыжий Лис Посмотреть сообщение
for (i = 2; i < N; i++) a[i] = 1; //цикл. Возможно ошибка, потому что нумерация элементов в массиве идёт с нуля,
скорее всего нет
похоже это реализация решета Эратосфена, нахождение всех простых чисел
0 (запись в ячейке) не простое 1 простое
0 и 1(числа) не простые, там нужен 0, но там мусор
0
Аннaa
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 115
31.05.2015, 14:32  [ТС] 5
Да, это решето Эратосфена. А объясните метод его? Почему такие числа разные выводятся?
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,938
31.05.2015, 14:39 6
Цитата Сообщение от Аннaa Посмотреть сообщение
А объясните метод его?
а почитать?
хотя бы здесь
https://ru.wikipedia.org/wiki/Решето_Эратосфена
0
31.05.2015, 14:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 14:39

Прокомментировать код
помогите понять этот код int main(){ const int PASSWORD_LENGTH=10; ...

Прокомментировать код
нужно описать что делают строки готовой программы #include &lt;iostream&gt;...

Прокомментировать код
// Функция решения квадратного уравнения #include &quot;stdio.h&quot; #include...


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

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

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