Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2021, 23:50   #1
Tim1664
 
Регистрация: 09.12.2020
Сообщений: 5
Вопрос Найти кол-во простых делителей и произведение только простых делителей

дано натуральное число N (N<10^4) Составить программу,которая вычисляет S только простых делителей N и произведение только простых делителей натурального числа N
Код:
Program Z;
var
  pr: real;
  k, i, n: integer;
 
begin
  write('N: ');
  readln(n);
  if n < exp(10*ln(4)) then 
  begin
  pr := 1;
  k := 0;
  for i := 1 to n do
    if (n mod i = 0) and (i mod 2 <> 0) then
    begin
      pr := pr * i;
    end;
  writeln('Произведение чётных делителей: ', pr);
  writeln('Количество   чётных делителей: ', k)
  end
  else 
  writeln('Wrong number');
end.
исправьте если что-то не так пожалуйста

Последний раз редактировалось Tim1664; 06.01.2021 в 00:44.
Tim1664 вне форума Ответить с цитированием
Старый 06.01.2021, 09:37   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Tim1664
Цитата:
Найти кол-во простых делителей и произведение только простых делителей
Код:
writeln('Произведение чётных делителей: ', pr);
  writeln('Количество   чётных делителей: ', k)
Вы сами понимаете, что вам надо?
Чётные, нечетные, простые, рациональные, иррациональные.
Прочитайте. В Сети предостаточно материала на эту тему.

PS:
Если необходимо искать только простые делители, то думаю, что надо написать две функции.
Одна ищет делители числа, а вторя проверяет их на простоту.
Помним, что если есть делитель, то есть и частное. Делители ищем до корня квадратного из числа.
На простоту проверяем и делитель и частное.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 06.01.2021, 11:39   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Вы сами понимаете, что вам надо? Чётные, нечетные, простые, рациональные, иррациональные.
Ну дык в сети удалось найти первое попавшееся это. А уж форумцы допилят до нужного функционала, и голову включать не надо.
Цитата:
что надо написать две функции. Одна ищет делители числа...
Можно сделать смешнее: поскольку диапазон исходных чисел невелик, то сгенерировать массив простых целочисленных констант от 2 до 97 и использовать их в качестве возможных делителей.
Вариантов много. Одно печалит: это же думать надо...

Последний раз редактировалось digitalis; 06.01.2021 в 11:43.
digitalis вне форума Ответить с цитированием
Старый 07.01.2021, 21:07   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Продолжим, несмотря на потерянный ТС-ом интерес к теме.
Допустим, имеем set ... of byte. Можем через in определить, принадлежит ли данный байт множеству. Но какой его номер в множестве по порядку - никак? Значит, нужно иметь массив констант, дублирующий множество. Первой операцией in определяем - принадлежит ли данный байт множеству, если да - то второй операцией в цикле ищем его номер. В таком случае необходимости в set никакой, потому что, видимо, in определяет искомое тоже через цикл, поэтому в коде дублируется один и тот же поиск. Is it'nt ?

Последний раз редактировалось digitalis; 07.01.2021 в 23:14.
digitalis вне форума Ответить с цитированием
Старый 10.01.2021, 11:20   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Фигню запостил (#3,последний абзац). Осознал, подумавши. Нагрузка на организм: НГ, Рождество, коньяк, шампанское - бошка тупеет...
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для каждого числа последовательности найти сумму его простых делителей Aibolat C++ Builder 0 04.10.2016 10:02
Нужно найти сумму всех простых делителей введённого числа AnnaMV Общие вопросы C/C++ 1 10.08.2016 08:24
Определить, больше ли сумма простых делителей числа М, произведения составных делителей числа N. Radmir. v Помощь студентам 5 10.11.2014 22:23
найти кол-во трехзначных чисел сумма простых делителей которых кратна 5 (на Делфи) anzorchik Помощь студентам 2 02.10.2011 16:18