Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 16.10.2014
Сообщений: 14

Найдите и выведите все непростые делители числа М

28.12.2014, 04:19. Показов 2071. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Постройте два множества А и К. Во множестве А разместите все делители целого числа М, а во множестве К – все простые делители этого числа. Найдите и выведите все непростые делители числа М.
Я не понимаю как это логически сделать, как я это представлю - две плоскости с множеством точек накладываются друг друга, и нужно найти точки которые не являются общими.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.12.2014, 04:19
Ответы с готовыми решениями:

Найдите и выведите все непростые делители числа М (множества)
Постройте два множества А и К. Во множестве А разместите все делители целого числа М, а во множестве К – все простые делители этого числа....

Найдите все делители заданного числа n
Найдите все делители задоного числа n

Найдите все делители заданного числа n.
Вариант №8 Найдите все делители заданного числа n.

1
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,459
28.12.2014, 20:02
Лучший ответ Сообщение было отмечено Dalaler как решение

Решение

То есть, нужно вывести разность множеств A - K.

Делители любого целого числа m суть 1, m и, может быть, некоторые числа, по величине не превосходящие m/2.
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function prime(n: integer): boolean; {определение простоты числа}
var i: integer;
begin
  if n < 2 {если < 2,}
    then prime := false {то не простое}
    else begin {иначе проверяем}
      prime := true; {пока считаем число простым}
      for i := 2 to trunc(sqrt(n)) do {цикл поиска делителей, почему до корня из n, сами подумайте}
        if n mod i = 0 {если делитель найден,}
          then begin {то}
            prime := false; {число не простое}
            break {выходим из цикла досрочно, дальнейшая проверка смысла не имеет}
          end
    end
end;
 
type sob = set of byte; {...}
 
procedure prn_set(s: string; x: integer; b: sob);  {...}
var i: integer;
begin
  writeln(s, x, ':');
  for i := 1 to x do if i in b then write(i, ' ');
  writeln
end;
 
var a, k: sob;  {...}
    m, i: integer;
 
begin
  repeat {ввод m, m в диапазоне 1..255}
    write('m = ');
    readln(m);
    if (m < 1) or (m > 255) then writeln('m out of range 1..255, reenter.')
  until (m >= 1) and (m <= 255);
  a := [1, m]; {ну, два делителя у числа всегда есть}
  if prime(m)
    then k := [m] {если само число простое, то делителей к него искать уже не надо}
    else begin {если число не простое}
      k := []; {простых делителей пока не найдено}
      for i := 2 to m div 2 do {ищем все остальные делители числа}
        if m mod i = 0 {если делитель найден}
          then begin
            include(a, i); {включаем его в множество A}
            if prime(i) then include(k, i) {если делитель простой, включаем его в множество B}
          end
    end;
  prn_set('All dividers of ', m, a); {печатаем множество всех делителей}
  prn_set('Prime dividers of ', m, k); {печатаем множество простых делителей}
  prn_set('Composite dividers of ', m, a - k);
  {...печатаем разность множеств всех делителей числа и простых делителей числа}
  readln
end.
Ограничение диапазона вводимых чисел до 1..255 связано с тем, что множества для целых чисел в большинстве диалектов паскаля могут включать только диапазон чисел типа byte, то есть, 0..255. Для расширения диапазона чисел, делитель 1 и делитель, равный самому числу, в программе можно учитывать отдельно. Тогда диапазон вводимых чисел можно расширить до 517 = ((255 + 3) * 2 + 1) максимум (3 - это 0, 1 и само число, +1 - связано с целочисленным делением). Для дальнейшего расширения диапазона вводимых чисел требуется либо отказаться от паскалевского множества и сделать свой тип множества, либо избрать диалект паскаля, допускающий расширенный диапазон типа множества. Ну, или целевые множества разбить на поддиапазоны из паскалевских множеств, тоже решение, хотя и через танцы с бубном.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2014, 20:02
Помогаю со студенческими работами здесь

Найдите все делители натурального числа N
1) Вычеслить P=1*1/2*1/4*1/8.... Произведение содержит n множителей. Значение n вводится с клавиатуры. 2) Найдите все делители...

Для натурального числа n найдите все простые делители
Для натурального числа n найдите все простые делители с учётом повторения их и запишите в файл. (Например: n=24; результат: 2, 2, 2, 3).

Найдите все простые делители целого числа в заданном диапазоне
Найдите все простые делители целого числа в заданном диапазоне.

Найдите все делители натурального числа, а также их количество и сумму
Найдите все делители натурального числа, а также их количество и сумму.

Дано натуральное число P. Найдите все делители числа P. Спасибо заранее
Дано натуральное число P. Найдите все делители числа P.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru