С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13

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

21.03.2013, 19:02. Показов 1060. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2013, 19:02
Ответы с готовыми решениями:

проверка простые числа или не простые
Составить программу для проверки утверждения: «результатами вычислений по формуле x2+x+17 при 0≤х≤15 являются простые числа»....

Определить, простые или составные числа. Как быть с 0 и 1
Написал прогу для определения типа чисел, простое или составное, но к числам 0,1,2 нужно отдельное условие поставить.

Va_arg или как это работает
Доброго времени суток, форумчане! Попалась такая трудность и непонимание: Решил написать нечто наподобие своего scanf'a, работающего с...

7
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.03.2013, 19:34
Цитата Сообщение от TecktoTrance Посмотреть сообщение
2 не считаются как простые числа
2 - простое число

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

Добавлено через 3 минуты
Чрезвычайно нелепый код. Откуда вы его взяли? Сами создали?
Поищите на форуме. Тут сотни программ, находящих простые числа. И некоторые вполне приемлемы.
Уважаемы вы читали что я описал выше ?
По условию задания "2" не считается простым числом! это во первых , во вторых код написан не мной, но если вам есть что сказать по тому что я попросил, отвечайте, не флудите "откуда такая нелепость ?", работает- это уже хорошо, но как работает еще интересней хотелось бы узнать!
Искал я на форуме подобные темы и там предоставляли более сложный код, а мой багаж знаний не велик(логические операторы if else switch, циклы while do while for и вложенные циклы в цикл, этим всем я должен был пользоваться для решения данного задания.
0
 Аватар для fjay69
90 / 90 / 17
Регистрация: 26.10.2012
Сообщений: 249
21.03.2013, 20:10
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
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
21.03.2013, 21:56
Цитата Сообщение от TecktoTrance Посмотреть сообщение
мой багаж знаний не велик
Раз ваш багаж не велик, потрудитесь четко излагать мысли, чтобы не вводить людей в заблуждение. И поспокойнее себя ведите.
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.03.2013, 22:59
Цитата Сообщение от TecktoTrance Посмотреть сообщение
но если вам есть что сказать по тому что я попросил, отвечайте, не флудите
Уже нечего. Просто не хочется говорить.
Цитата Сообщение от TecktoTrance Посмотреть сообщение
как работает еще интересней хотелось бы узнать!
Все-таки открою вам маленький секрет. Хотя ваша агрессивность к этому не располагает. Это делается так. Включаете отладочный режим. Смотрите по шагам, что происходит в вашей программке, значения переменных и почему программа выбирает тот или иной путь. Возможно, с отладочным режимом могут быть затруднения. (Лично я его терпеть не могу). Тогда в те места, которые вам кажутся непонятными, вставляете отладочную печать, типа
C++
1
cout<<degit
Если выдачи получается очень много (не помещается на экранчик), запускаете программу так
Code
1
 прога.exe >deb.txt
и с удовольствием анализируете получившийся файл.
Смею вас уверить, что такой подход даст вам значительно больше, чем скуление на форумах.
Удачи!
0
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
21.03.2013, 23:33  [ТС]
Цитата Сообщение от HighPredator Посмотреть сообщение
Раз ваш багаж не велик, потрудитесь четко излагать мысли, чтобы не вводить людей в заблуждение. И поспокойнее себя ведите.
Пардон, то есть что вам не ясно ? Человек выше(fjay69) дал ответ на поставленный мною вопрос, или он тоже в заблуждении ?
И за спокойствие попрошу не беспокоится, аггро метр не превышал и нуля, или таки ваша защита Форумчан ?
Никого я здесь не оскорблял, и не за этим сюда пришел, а его ответ увы меня удивил!
0
22.03.2013, 00:05
 Комментарий модератора 
Ответ на вопрос получен. Тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2013, 00:05
Помогаю со студенческими работами здесь

Выбор оборудования или как это работает?
Есть сеть без интернета. Есть часть людей в этой сети желающих интернет. Это не бизнес, поэтому денег мало. Глянул что свичи с...

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

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

Не работает intval или как выяснить что строка это число
Я в ступоре, код: $s='win 8'; echo '$s=&quot;'.$s.'&quot;&lt;br&gt;'; echo 'intval($s)=&quot;'.intval($s).'&quot;&lt;br&gt;'; echo '$s=&quot;'.$s.'&quot;&lt;br&gt;'; ...

Монитор не работает через VGA ,работает через встороенный адаптер .мне успокоиться или спасать комп .это видеокарта или другое?подскажите пожалуйста!
монитор не работает через vga.работает только через встроенный адаптер.мне успокоиться,или спасать комп?


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

Или воспользуйтесь поиском по форуму:
8
Закрытая тема Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru