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

Найти все натуральные числа из промежутка от А до B, у которых количество делителей равно N

26.09.2015, 08:03. Показов 4111. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти все натуральные числа из промежутка от А до B, у которых количество делителей равно N.
Решить с помощью WHILE или REPEAT.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2015, 08:03
Ответы с готовыми решениями:

Найти все натуральные числа из промежутка от 1 до 20, у которых количество делителей равно N (N вводить с клавиатуры).
Пожалуйста помогите сделать задачу) Найти все натуральные числа из промежутка от 1 до 20, у...

Найти все натуральные числа из промежутка от 1 до 200. у которых количество делителей равно N (N вводить с клавиатуры)
Найти все натуральные числа из промежутка от 1 до 200. у которых количество делителей равно N (N...

Найти натуральные числа из промежутка от 100 до 9, у которых количество делителей равно N
привет всем, помогите написать программу. Найти натуральные числа из промежутка от 100 до 9, у...

Найти все натуральные числа из промежутка от a до b, у которых количество делителей равно N
Найти все натуральные числа из промежутка от a до b, у которых количество делителей равно N (если...

10
Модератор
Эксперт по электронике
8475 / 4334 / 1642
Регистрация: 01.02.2015
Сообщений: 13,455
Записей в блоге: 8
26.09.2015, 08:25 2
Найти все целые числа из промежутка от а до b у которых ровно n делителей
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.09.2015, 09:22 3
Лучший ответ Сообщение было отмечено Grin21 как решение

Решение

По ссылке утверждается, что
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
ошибка: единицу и само число за делители числа не считают.
Однако это не так.

Добавлено через 26 минут
С циклом while
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
var a,b,i,j,k,max,maxn:integer;
begin
repeat
writeln('Введите диапазон натуральных чисел a<b');
readln(a,b);
until(a>0)and(b>a);
max:=1;
maxn:=1;
i:=a;
while i<=b do
 begin
  k:=2;//делители 1 и само  число
  j:=2;
  while j<=trunc(sqrt(i)) do//считаем делители до корня из числа и умножаем на 2
   begin
    if i mod j=0 then inc(k,2);
    inc(j);
   end;
  if frac(sqrt(i))=0 then dec(k);//если число полный квадрат, то минус 1
  if k>max then
   begin
    max:=k;
    maxn:=i;
   end;
  writeln('Количество делителей у числа ',i,'=',k);
  inc(i);
 end;
write('Максимальное число делителей у числа ',maxn,'=',max);
end.
2
ФедосеевПавел
26.09.2015, 11:41
  #4

Не по теме:

Значит изменяем ссылку на эталонное решение:)

0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 31
26.09.2015, 14:00  [ТС] 5
А можно как-то решить без функций: trunc, frac, dec?)
0
Модератор
Эксперт по электронике
8475 / 4334 / 1642
Регистрация: 01.02.2015
Сообщений: 13,455
Записей в блоге: 8
26.09.2015, 14:17 6
Цитата Сообщение от Grin21 Посмотреть сообщение
А можно как-то решить без функций: trunc, frac, dec?)
Удивляюсь - программа решает другую задачу, а вы придираетесь к таким мелочам. Перед пацанами-то неловко, наверное. А ещё блок-схему рисовать... И ваще... Фу-у-у... Нельзя быть таким!
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.09.2015, 14:22 7
Цитата Сообщение от Grin21 Посмотреть сообщение
решить без функций: trunc, frac, dec?)
А еще без begin, end, if...
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 31
26.09.2015, 15:15  [ТС] 8
Нее)
0
Модератор
Эксперт по электронике
8475 / 4334 / 1642
Регистрация: 01.02.2015
Сообщений: 13,455
Записей в блоге: 8
26.09.2015, 15:24 9
Скромно стырив идею Puporev, предложу свой вариант решения задачи
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
program Dividers;
 
var
  A, B, N: integer;
  i, j, k: integer;
begin
  Write('A: ');
  readln(A);
  Write('B: ');
  readln(B);
  Write('N: ');
  readln(N);
  for i := A to B do
  begin
    k := 0;
    for j := 1 to round(sqrt(i)) do
      if i mod j = 0 then
      begin
        Inc(k, 2);
        if i div j = j then
          Dec(k);
      end;
    if k = N then
      writeln(i);
  end;
end.
P.S. На случай, когда число является полным квадратом (j*j=i) проверяю через div потому, что когда-то давно разбирая асм листинги видел, что если рядом находятся строки a mod b и a div b, компилятор FPC второе деление не реализует, а использует ранее полученное значение. Такая мелкая оптимизация.
0
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 31
29.09.2015, 17:02  [ТС] 10
Вот так:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
   a,b,i,j,z,x,n:integer;
Begin
    i:=a;
    Writeln('Введите A, B, N');
    Readln(a,b,n);
    While i<=b do
          Begin
          x:=0;
          j:=a;
          While j<=i do
          Begin
          if (i mod j)=0 then x:=x+1; j:=j+1;
          End;
          If x=n then writeln('N = ', i);
          i:=i+1;
          End;
End.
0
Модератор
Эксперт по электронике
8475 / 4334 / 1642
Регистрация: 01.02.2015
Сообщений: 13,455
Записей в блоге: 8
29.09.2015, 18:56 11
Возражаю! У меня сомнения!

Добавлено через 3 минуты
Для A=10, B=20, N=4
моя программа
A: 10
B: 20
N: 4
10
14
15
ваша программа
Введите A, B, N
10 20 4
Т.е. результат двух программ не сошёлся.

Возражения доказаны.
0
29.09.2015, 18:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2015, 18:56
Помогаю со студенческими работами здесь

Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N
Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N (N...

Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N
Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N (N...

Найти все целые числа из промежутка от a до b, у которых количество делителей равно k
Найти все целые числа из промежутка от a до b, у которых количество делителей равно k.

Найти все целые числа из промежутка от а до b, у которых количество делителей равно k
Найти все целые числа из промежутка от а до b, у которых количество делителей равно k. Если таких...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru