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

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

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

Простые числа, или как это работает? - C++

21.03.2013, 19:02. Просмотров 449. Ответов 7
Метки нет (Все метки)

Доброго времени суток всем участникам этого форума =) У меня как у начинающего программиста возникла затрудняющая ситуация, есть готовый код программы, но как он действует не до конца понимаю
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
#include <iostream>
using namespace std;
void main(){
 
int digit=0;
for(int i=2;i<=1000;i++){
    for(int j=1;j<=i;j++){
        if(i==2){
            continue;
        }
        if(i%j==0){
            digit++;
        }
    
        if(j==i/2&&digit==1){
            cout<<i<<endl;
            digit=0;
        }
        if(digit>1){
            digit=0;
    break;}
        }
}
}
Эта программа выводит все простые числа от 3 до 997(по условию нужно вывести все простые числа от 2 до 1000, но 1 и 2 не считаются как простые числа), читая код этой программы у меня возник некий вопрос:
была создана переменная digit и присвоено значение 0, она сыграла роль счетчика, ну а конкретно как этот счетчик сработал мне не ясно =/
В логических операторах if были созданы условия: вычеркивать из списка все четные числа(так как они не есть простые числа) и выводить числа которые делятся на единицу и на само себя, и тут влезает мне в голову эта самая переменная digit, которая играет роль в этом коде, то увеличивает свое значение то снова ей присваивается 0.
Люди добрые кто как может, яснее просветите меня как же работает этот код ( пробовал пробежаться отладчиком и посмотреть как же все таки он срабатывает, и тут меня обрек жестокий Fail, меня повело черт знает куда)
Заранее спасибо за участие в теме =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простые числа, или как это работает? (C++):

как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке c=a+b,c; - C++
как соединить b и с в число, если а это число, б это десятки перевернутого числа, с это единицы перевернутого числа вот в это строчке...

Разбить N на более простые числа, в сумме дающие это N - C++
Нашел я как-то в одной книге задачу. До сих пор бьюсь над ее решением. Может кто подскажет программу для ее решения (на Visual C++,либо на...

Вывести простые числа от a до n (while или for) - C++
Подскажите пожалуйста, как реализовать вывод на экран всех простых чисел от a до n при помощи цикла (while или for)?

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using std::cout; using std::cin; using...

Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа - C++
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа. Простые числа это когда они делятся только...

Как это работает? Я хочу спросить как работает C++ и где можно про него почитать - C++
Привет, котоны. Заранее благодарю. Это будет моих общих вопросов нить, т.к. создавать целую ветку для каждого нецелесообразно. Я хочу...

7
Байт
Эксперт C
16534 / 10804 / 1637
Регистрация: 24.12.2010
Сообщений: 20,827
21.03.2013, 19:34 #2
Цитата Сообщение от TecktoTrance Посмотреть сообщение
2 не считаются как простые числа
2 - простое число

Добавлено через 3 минуты
Чрезвычайно нелепый код. Откуда вы его взяли? Сами создали?
Поищите на форуме. Тут сотни программ, находящих простые числа. И некоторые вполне приемлемы.
0
TecktoTrance
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
21.03.2013, 20:00  [ТС] #3
Цитата Сообщение от Байт Посмотреть сообщение
2 - простое число

Добавлено через 3 минуты
Чрезвычайно нелепый код. Откуда вы его взяли? Сами создали?
Поищите на форуме. Тут сотни программ, находящих простые числа. И некоторые вполне приемлемы.
Уважаемы вы читали что я описал выше ?
По условию задания "2" не считается простым числом! это во первых , во вторых код написан не мной, но если вам есть что сказать по тому что я попросил, отвечайте, не флудите "откуда такая нелепость ?", работает- это уже хорошо, но как работает еще интересней хотелось бы узнать!
Искал я на форуме подобные темы и там предоставляли более сложный код, а мой багаж знаний не велик(логические операторы if else switch, циклы while do while for и вложенные циклы в цикл, этим всем я должен был пользоваться для решения данного задания.
0
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
21.03.2013, 20:10 #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
#include <iostream>
using namespace std;
void main(){
 
int digit=0;//количество чисел, которые делят i без остатка
for(int i=2;i<=1000;i++){//число, которое проверяют
    for(int j=1;j<=i;j++){//делитель
        if(i==2){//пропустить
            continue;
        }
        if(i%j==0){//если делится без остатка
            digit++;
        }
    
        if(j==i/2&&digit==1){//когда делитель больше половины делимого
//и когда только одно число, которое делит i без остатка, больше нет смысла подбирать числа
 
            cout<<i<<endl;
            digit=0;//сброс digit
        }
        if(digit>1){
            digit=0;//текущее число не простое. сброс digit
    break;}
        }
}
}
1
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
21.03.2013, 21:56 #5
Цитата Сообщение от TecktoTrance Посмотреть сообщение
мой багаж знаний не велик
Раз ваш багаж не велик, потрудитесь четко излагать мысли, чтобы не вводить людей в заблуждение. И поспокойнее себя ведите.
2
Байт
Эксперт C
16534 / 10804 / 1637
Регистрация: 24.12.2010
Сообщений: 20,827
21.03.2013, 22:59 #6
Цитата Сообщение от TecktoTrance Посмотреть сообщение
но если вам есть что сказать по тому что я попросил, отвечайте, не флудите
Уже нечего. Просто не хочется говорить.
Цитата Сообщение от TecktoTrance Посмотреть сообщение
как работает еще интересней хотелось бы узнать!
Все-таки открою вам маленький секрет. Хотя ваша агрессивность к этому не располагает. Это делается так. Включаете отладочный режим. Смотрите по шагам, что происходит в вашей программке, значения переменных и почему программа выбирает тот или иной путь. Возможно, с отладочным режимом могут быть затруднения. (Лично я его терпеть не могу). Тогда в те места, которые вам кажутся непонятными, вставляете отладочную печать, типа
C++
1
cout<<degit
Если выдачи получается очень много (не помещается на экранчик), запускаете программу так
Код
 прога.exe >deb.txt
и с удовольствием анализируете получившийся файл.
Смею вас уверить, что такой подход даст вам значительно больше, чем скуление на форумах.
Удачи!
0
TecktoTrance
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
21.03.2013, 23:33  [ТС] #7
Цитата Сообщение от HighPredator Посмотреть сообщение
Раз ваш багаж не велик, потрудитесь четко излагать мысли, чтобы не вводить людей в заблуждение. И поспокойнее себя ведите.
Пардон, то есть что вам не ясно ? Человек выше(fjay69) дал ответ на поставленный мною вопрос, или он тоже в заблуждении ?
И за спокойствие попрошу не беспокоится, аггро метр не превышал и нуля, или таки ваша защита Форумчан ?
Никого я здесь не оскорблял, и не за этим сюда пришел, а его ответ увы меня удивил!
0
HighPredator
22.03.2013, 00:05     Простые числа, или как это работает?
  #8
 Комментарий модератора 
Ответ на вопрос получен. Тема закрыта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2013, 00:05
Привет! Вот еще темы с ответами:

Русификация.Работает-супер! Обьяснитте, как это работает? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; using namespace std; char* Rus(const char* text); int main () ...

Как это работает? - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; int main() { char* s=new char; ...

Как это работает - C++
Здравствуйте уважаемые форумчане!Как это работает? Как например предотвратить выход за приделы допустимых значений переменных!? ...

Как это работает? - C++
Читаю я кое какой &quot;учебник&quot;, и в нём появился такой вот кусок кода int input (tank&amp; t, char map) { char act; int ch; int e =...


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

Или воспользуйтесь поиском по форуму:
8
22.03.2013, 00:05
Закрытая тема Создать тему
Опции темы

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