0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 24
1

Определить, простое или составное введённое число

09.03.2016, 21:26. Показов 8637. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите создать программу,которая при введении любого числа показывает: простое или составное это введенное число. (Я пробовал но у меня не получалось. И похоже я вообще не правильно писал код.)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2016, 21:26
Ответы с готовыми решениями:

Работа с файлом. Проверка чисел - составное или простое
Добрый вечер! Прошу помощи в решении задачи. ТЗ: Имеется исходный текстовый файл, в котором...

Определить введенное число простое или составное
Определить введенное число простое или составное. Очень нужна... Можно на мыло jiehuh-das@ya.ru

Что больше - минимальное простое число в матрице или максимальное составное?
4. Дана матрица А(3,4). Что больше: минимальное простое число в ней или максимальное составное?...

Создать программу, которая найдет наименьшее число, который взаимное простое число с 60 и больше, чем введенное число
Создать программу, которая найдет наименьшее число, который взаимное простое число с 60 и больше,...

11
Модератор
10074 / 5415 / 3356
Регистрация: 17.08.2012
Сообщений: 16,578
09.03.2016, 21:37 2
Алгоритм, который устанавливает – является ли число простым
0
3 / 3 / 4
Регистрация: 29.02.2016
Сообщений: 10
09.03.2016, 21:38 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var x,i:integer;
begin
write('Ввведите число - ');
read(x);
for i:=2 to x-1 do
if x mod i = 0 then
begin
x:=1;
write('Число составное');
break;
end;
if x<>1 then
write('Число простое');
end.
1
Модератор
10074 / 5415 / 3356
Регистрация: 17.08.2012
Сообщений: 16,578
09.03.2016, 22:14 4
Брайтер, Ваша программа содержит алгоритмические ошибки.

При x < 1 Ваша программа объявляет любое число простым.
При x = 1 - молчит, как партизан.
Вместо оператора readln применён оператор read.

Кроме того, перебор чисел до x - 1 излишен, очевидно, что, если число не содержит делителей в диапазоне https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
2\,..\,\lfloor \sqrt{X}\rfloor<br />
, то оно простое. К тому же, все простые числа, кроме двойки - нечётные, после двойки можно проверять делимость только на нечётные числа.
2
56 / 56 / 26
Регистрация: 13.11.2013
Сообщений: 234
Записей в блоге: 1
09.03.2016, 23:48 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Изящное решение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function isSimple(value: cardinal): boolean;
begin
  if value < 2 then
  begin
    Result := false;
    exit;
  end;
  Result := Range(2, Trunc(Sqrt(value))).Where(f -> value mod f = 0).Count = 0;
end;
 
begin
  writeln(isSimple(2147483647));
  for var i:=2 to 100 do
  if not isSimple(i) then Print(i);
end.
1
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
10.03.2016, 09:55 6
pavelDev, изящное решение не есть оптимальное.
0
Модератор
10074 / 5415 / 3356
Регистрация: 17.08.2012
Сообщений: 16,578
10.03.2016, 11:13 7
pavelDev, если уж пишете неоптимальное изящное решение, то почему Ваше изящество такое длинное? Написали бы уже вот так, что ли:
Pascal
1
2
3
4
function isSimple(value: cardinal): boolean;
begin
  Result := (value >= 2) and (Range(2, Trunc(Sqrt(value))).Where(f -> value mod f = 0).Count = 0)
end;
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33022 / 21323 / 8186
Регистрация: 22.10.2011
Сообщений: 36,629
Записей в блоге: 9
10.03.2016, 11:28 8
Я уже где-то показывал применение Linq для определения простоты числа:
Pascal
1
2
function isPrime(v : integer) : boolean :=
  (v > 1) and Enumerable.Range(2, Trunc(Sqrt(v)) - 1).All(t -> v mod t <> 0);
2
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 24
10.03.2016, 17:17  [ТС] 9
Спасибо вам. Оказывается я вообще был далек от истины..... !
0
56 / 56 / 26
Регистрация: 13.11.2013
Сообщений: 234
Записей в блоге: 1
10.03.2016, 17:34 10
Cyborg Drone, В таком случаи можно ещё больше минимизировать
Pascal
1
function isSimple(value: cardinal):boolean:=(value>1) and (Range(2, Trunc(Sqrt(value))).Where(f -> value mod f = 0).Count = 0);
.
Но дело в том что автор темы скорее всего новичок и я не очень хотел его напрягать в понимании кода а только продемонстрировать возможности LINQ.
Цитата Сообщение от Joy Посмотреть сообщение
pavelDev, изящное решение не есть оптимальное.
Да ,согласен ,мною предложенный вариант не оптимален.
0
Модератор
10074 / 5415 / 3356
Регистрация: 17.08.2012
Сообщений: 16,578
10.03.2016, 18:37 11
pavelDev,

Не по теме:

На самом деле я в PABC.NET не очень, мне как-то чужда его До-диезовская парадигма, и, к примеру, до volvo мне как до Пекина раком... И вообще... Не очень люблю альтерированные тональности... Ля-минор и До-мажор рулят!

0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
10.03.2016, 19:01 12
pavelDev, а функция то зачем. ТС просто просил введенное число проверить.
0
10.03.2016, 19:01
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2016, 19:01
Помогаю со студенческими работами здесь

Нужно определить простое число или нет
Помогите кто может написать программу, которая могла бы определить простое число или нет (что бы...

Определить - простое число или составное
Ребята надо с Turbo Pascal код перевести в Assembler program prost; var n,d,r:integer; begin...

Как определить, число - простое или составное?
Напишите функцию, определяющую, простое число или составное. Вводится одно число n. Необходимо...

определить число простое или составное нужно блок схему и код на с++
дано число n &gt; 1 если n является простым числом то вывести сообщение n простое чилсо если иначе то...


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

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

Новые блоги и статьи
В чем разница между let и var в JavaScript
InfoMaster 20.01.2025
JavaScript прошел длинный путь эволюции с момента своего создания в 1995 году. Одним из важнейших аспектов развития языка стало совершенствование механизмов объявления и управления переменными. . . .
Эффективная работа со строками в Go
InfoMaster 20.01.2025
Язык программирования Go предлагает уникальный подход к работе со строками, который существенно отличается от многих других языков программирования. В Go строки представляют собой неизменяемые. . .
Как проверить, что отображение (map) содержит ключ в Go
InfoMaster 20.01.2025
Отображения (maps) в языке программирования Go представляют собой мощные структуры данных, которые позволяют хранить пары ключ-значение и обеспечивают быстрый доступ к данным по уникальным. . .
Как организовать домашнее хранилище фильмов с общим доступом для всей семьи
InfoMaster 20.01.2025
Преимущества домашнего медиасервера В современном мире, где цифровой контент стал неотъемлемой частью нашей жизни, организация домашнего медиасервера становится все более актуальной задачей. . . .
Перспективы развития жестких дисков: есть ли у них будущее?
InfoMaster 20.01.2025
История и эволюция жестких дисков История развития жестких дисков начинается в 1956 году, когда компания IBM представила первое устройство для хранения данных на магнитных пластинах - IBM 350. . .
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru