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

Программа проверки числа на простоту. Не могу понять как она работает. - C++

Восстановить пароль Регистрация
 
Moroiwnd
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 35
08.01.2013, 19:36     Программа проверки числа на простоту. Не могу понять как она работает. #1
У меня в учебнике есть программа, она правильно работает, но я не могу понять каким образом она это делает.

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
int i, j;
   
   
   bool isprime;
   
   for (i=1; i<100; i++)
   {
       isprime = true; 
       
       for (j=2; j<=i/2; j++)
           
       
           if ((i%j) == 0) // Возьмем, к примеру, первый прогон цикла - i=1; j=2 - 1%2=1.
                                // Возьмем второй прогон i=2; j=3 - 2%3=2.
                                // ... восьмой - i=8; j=9 - 8%9=8
                                // По-моему программа написана таким образом, что все цифры простые, потому что всегда будет
                                // остаток от деления. И зачем такое непонятное ограничение j<=i/2 - тоже мне кажется это               
                                // странным
 
               isprime = false;
   
       
       if (isprime)   // что означает это выражение?
           cout << i << " простое. \n";
}
Заранее спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 19:36     Программа проверки числа на простоту. Не могу понять как она работает.
Посмотрите здесь:

не могу понять почему не работает программа C++
Не могу понять почему программа работает не правильно! C++
Не могу понять как работает программа C++
C++ Странная ошибка не могу понять что она хочет)
Не могу понять, как работает побитовый сдвиг C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
08.01.2013, 19:42     Программа проверки числа на простоту. Не могу понять как она работает. #2
Цитата Сообщение от Moroiwnd Посмотреть сообщение
if (isprime) * // что означает это выражение?
по другому это можно записать
C++
1
if (isprime == true)
Moroiwnd
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 35
08.01.2013, 20:24  [ТС]     Программа проверки числа на простоту. Не могу понять как она работает. #3
v.a.l.i.d
ну, в принципе, я так и думала.
В общем, осталось только понять зачем использовано приращение к j
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
08.01.2013, 20:35     Программа проверки числа на простоту. Не могу понять как она работает. #4
Не знаю понятно это будет или нет. Но попробую объяснить)

121
Как проверить 121 это простое число или обычное? Нужно делить его на все числа от 2 до 121/2
Если при таком делении в остатке получится ноль, то тогда это число обычное

121 % 2 != 0 (остаток при делении 121 на 2 не равен нулю)
121 % 3 != 0
121 % 4 != 0
121 % 5 != 0
121 % 6 != 0
121 % 7 != 0
121 % 8 != 0
121 % 9 != 0
121 % 10 != 0
121 % 11 == 0 => Это число делится на 11, значит оно не простое
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 130
08.01.2013, 20:41     Программа проверки числа на простоту. Не могу понять как она работает. #5
Не проще ли делить до корня исследуемого числа?
~B~
 Аватар для ~B~
6 / 6 / 0
Регистрация: 12.06.2011
Сообщений: 80
08.01.2013, 20:51     Программа проверки числа на простоту. Не могу понять как она работает. #6
Цитата Сообщение от Moroiwnd Посмотреть сообщение
if (isprime) * // что означает это выражение?
* * * * * *cout << i << " простое. \n";
Содержимое цикла if будет выполняться только в том случае, если значение isprime будет true. При false компилятор пробежит мимо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 21:13     Программа проверки числа на простоту. Не могу понять как она работает.
Еще ссылки по теме:

Не могу понять, как работает проверка на нечётность C++
Рекурсивное значение функции проверки числа на простоту C++
C++ Не могу понять, как работает программа

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

Или воспользуйтесь поиском по форуму:
Moroiwnd
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 35
08.01.2013, 21:13  [ТС]     Программа проверки числа на простоту. Не могу понять как она работает. #7
v.a.l.i.d, ааа... это ж, наверно, вложенный цикл. Все, я поняла , ты оч хорошо объяснил
Yandex
Объявления
08.01.2013, 21:13     Программа проверки числа на простоту. Не могу понять как она работает.
Ответ Создать тему
Опции темы

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