|
1 / 1 / 0
Регистрация: 23.10.2016
Сообщений: 259
|
|
Определить, является ли заданное натуральное число простым07.01.2017, 18:35. Показов 5957. Ответов 74
Метки нет (Все метки)
Определить, является ли заданное натуральное число простым.
Выходные данные: Вывести YES или NO. Ввод 29 Вывод YES
0
|
|
| 07.01.2017, 18:35 | |
|
Ответы с готовыми решениями:
74
Определить, является ли заданное натуральное число простым Определить, является ли заданное натуральное число простым Рекурсия: определить, является ли заданное натуральное число простым |
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 06.10.2022, 21:01 | |
|
Если ты говоришь о функции main, то ее вызывает операционная система. И иногда по возврату она можеть судить об успешности выполнения. Но ее пути неисповедимы. Поэтому на всякий случай мы возвращаем 0.
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 06.10.2022, 21:10 | |
|
Без команды return 0 мой код понимает простое это число или нет ввёл пользователь, система выдаёт мне столько значений какое число я ввёл. Допустим ввёл я число 5, прога напишет что это число prime, но она так же мне ещё 4 примера выдаст, хотя мне нужен ответ по одному значению 5 в данном случае. Если я пишу команды return 0 после cout, то все окей. Я так понимаю в моем коде без return 0 не обойтись. Объясните пожалуйста, почему в моем приме без return 0 не обойтись и почему именно 0?
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,317
|
|||||||||||
| 06.10.2022, 21:48 | |||||||||||
|
Команда return 0 прекращает выполнение программы и соответственно выполнение цикла. Поэтому в цикле нужно проверять только на не-простоту, и выдавать сообщение с завершением программы (цикла). А сообщение, что число простое - выдавать только если весь цикл пройден и делителей не найдено.
В вашем случае, как программа написана, так она и работает. Она так и будет выдавать ответы для каждого i, пока не выполнится условие остановки цикла i * i <= n.
Именно return 0 нужно потому, что ваша основная выполняемая функция (тело программы) объявлена целочисленной int main {}, и должна вернуть целое число. Обычно при штатном окончании программы возвращается 0, а при возникновении ошибки - код ошибки.
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 06.10.2022, 21:50 | |
|
Благодарю за объяснение! Все понятно. А если правильный код переоборудовать под поиск всех простых чисел до заданного, нужно просто добавить условную конструкцию или там глобально нужно поменять код?
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,317
|
||||||
| 06.10.2022, 22:44 | ||||||
|
Нужно добавить ещё один цикл, который будет перебирать переменные, которые в свою очередь будут проверяться на простоту. Саму проверку на простоту при этом лучше оформить в виде функции, которая будет возвращать результат проверки false-true. как-то так:
0
|
||||||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 06.10.2022, 23:06 | |
|
Спасибо.
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 07.10.2022, 21:48 | |
|
alexu_007, только в коде который вы прислали есть какая-то неточность. Если ввести например число 49, то прога выдаст is prime.
Добавлено через 3 часа 53 минуты Дело мне кажется в условии if (n % i == 0) 49 под это условие не подходит, как и некоторые другие не простые числа.
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
||||
| 08.10.2022, 05:23 | ||||
int main() НЕ нужно писать return 0. Функция main и сама вернет 0, без вашего return 0.for ... else? Что это за "правильная" конструкция такая?
0
|
||||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 08.10.2022, 09:31 | |
|
TheCalligrapher, я обратил внимание, что else находиться за пределами компаунд стейтмента for и запихнул его туда. На return 0 прога не ругалась и дала спокойно мне этот код скомпилять. Но проблема в том, что код не корректно работает. Если убрать у оператора return значение 0, то компилятор начинает ругаться. Пишет 'main': function must return a value. Но в то же время вы говорите, что данный оператор пишется без значения 0.
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
|||
| 08.10.2022, 11:11 | |||
|
Я лишь сказал, что никакого return вообще писать не обязательно.
0
|
|||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 08.10.2022, 12:09 | |
|
Да. Извиняюсь. Не правильно прочитал. Если там return не нужен, тогда как можно решить мою проблему, потому что я пока не совсем понимаю как можно написать рабочий код. Подскажите пожалуйста
0
|
|
|
2410 / 1942 / 764
Регистрация: 27.07.2012
Сообщений: 5,578
|
|
| 08.10.2022, 12:17 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 08.10.2022, 12:23 | |
|
int main()
{ cout << "Enter number" << endl; int n; cin >> n; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { cout << n << " is not prime " << endl; } else cout << n << " is prime " << endl; } } Сори за такой формат. Копирую с телефона. После команды вывода в поток я вставлял return 0 , как мне и посоветовали для того чтобы прервать цикл, но это не верно. Цикл это конечно останавливает, но неправильно обрабатывает непростые числа такие как 49 например.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 08.10.2022, 12:32 | ||||||
|
Radanovich, Все с тобой понятно
![]()
Добавлено через 1 минуту А у тебя любое нечетное окажется простым.
0
|
||||||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 08.10.2022, 12:43 | |
|
Байт, спасибо за ответ. Я правда команду break ещё не проходил. Без неё возможно обойтись?
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||||
| 08.10.2022, 12:52 | ||||||||
0
|
||||||||
|
1 / 1 / 0
Регистрация: 22.09.2022
Сообщений: 45
|
|
| 08.10.2022, 13:37 | |
|
Спасибо ещё раз за ответ. Проанализирую код который вы мне прислали и представлю его преподавателю.
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,317
|
|||
| 08.10.2022, 20:03 | |||
|
Добавлено через 3 минуты
0
|
|||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
||
| 08.10.2022, 20:05 | ||
for ... else. В последнем - проверка несуществующей переменной n.
0
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,317
|
|||||||
| 08.10.2022, 20:19 | |||||||
|
Ну если видите, что else вставлено ошибочно - самим убрать не судьба? Radanovich, ты
Если да, то может ну его нафиг, это программирование? Сложное какое-то оно...
0
|
|||||||
| 08.10.2022, 20:19 | |
|
Проверить, является ли заданное натуральное число простым Напишите рекурсивную функцию, проверяющую, является ли заданное натуральное число простым Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым
Определить, является ли заданное число простым Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|