В введенном промежутке натуральных чисел найти те, количество делителей у которых не меньше введенного значения. Для найденных чисел вывести на экран количество делителей и все делители.
Пользователь вводит числовой промежуток — минимальное (a) и максимальное (b) числа. После этого запрашивается искомое количество делителей.
Во внешнем цикле перебираются натуральные числа от a до b. При этом в конце каждой итерации a увеличивается на 1, тем самым приближаясь к b.
В теле внешнего цикла вводится счетчик (m) количества делителей очередного натурального числа. Далее во внутреннем цикле перебираются числа (i) от 1 до a. Если i делит нацело a, то счетчик увеличивается на 1.
После этого значение счетчика сравнивается с требуемым количеством делителей. Если у очередного натурального числа не меньше делителей, чем требуется, то оно и количество делителей выводятся на экран. После этого в цикле снова ищутся делители, но теперь уже они просто выводятся на экран.
Pascal
количество делителей числа паскаль
var
a,b,n,m,i: word;
begin
write('Числовой промежуток: ');
readln(a,b);
write('Количество делителей не менее... ');
readln(n);
while a <= b do begin
m := 0;
for i:=1 to a do
if a mod i = 0 then m := m + 1;
if m >= n then begin
write(a,' - ', m,' - ');
for i:=1 to a do
if a mod i = 0 then write(i,' ');
writeln;
end;
a := a + 1;
end;
end.
Числовой промежуток: 21 44
Количество делителей не менее... 5
24 - 8 - 1 2 3 4 6 8 12 24
28 - 6 - 1 2 4 7 14 28
30 - 8 - 1 2 3 5 6 10 15 30
32 - 6 - 1 2 4 8 16 32
36 - 9 - 1 2 3 4 6 9 12 18 36
40 - 8 - 1 2 4 5 8 10 20 40
42 - 8 - 1 2 3 6 7 14 21 42
44 - 6 - 1 2 4 11 22 44
Язык Си
#include
main() {
unsigned int a,b,m,n,i;
printf("Числовой промежуток: ");
scanf("%d%d",&a,&b);
printf("Минимальное количество делителей: ");
scanf("%d",&n);
while (a <= b) {
m = 0;
for (i=1; i<=a; i++)
if (a%i == 0) m += 1;
if (m >= n) {
printf("%d - %d - ", a, m);
for (i=1; i<=a; i++)
if (a%i == 0) printf("%d ", i);
printf("\n");
}
a += 1;
}
}
Числовой промежуток: 343 434
Минимальное количество делителей: 20
360 - 24 - 1 2 3 4 5 6 8 9 10 12 15 18 20 24 30 36 40 45 60 72 90 120 180 360
420 - 24 - 1 2 3 4 5 6 7 10 12 14 15 20 21 28 30 35 42 60 70 84 105 140 210 420
432 - 20 - 1 2 3 4 6 8 9 12 16 18 24 27 36 48 54 72 108 144 216 432
Python
количество делителей числа python (питон)
a = int(input("Минимум: "))
b = int(input("Максимум: "))
n = int(input("Минимальное количество делителей: "))
while a <= b:
m = 0
for i in range(1,a+1):
if a%i == 0:
m += 1
if m >= n:
print(a,'-',m,end=' - ')
for i in range(1,a+1):
if a%i == 0:
print(i,end=' ')
print()
a += 1
Минимум: 45
Максимум: 66
Минимальное количество делителей: 7
48 - 10 - 1 2 3 4 6 8 12 16 24 48
54 - 8 - 1 2 3 6 9 18 27 54
56 - 8 - 1 2 4 7 8 14 28 56
60 - 12 - 1 2 3 4 5 6 10 12 15 20 30 60
64 - 7 - 1 2 4 8 16 32 64
66 - 8 - 1 2 3 6 11 22 33 66
Basic-256
input "Минимум: ", a
input "Максимум: ", b
input "Минимальное количество делителей: ", n
while a <= b
m = 0
for i=1 to a
if a%i = 0 then m = m + 1
next i
if m >= n then
print a + " - " + m + " - ";
for i=1 to a
if a%i = 0 then print i + " ";
next i
print
endif
a = a + 1
endwhile
Минимум: 150
Максимум: 177
Минимальное количество делителей: 12
150 - 12 - 1 2 3 5 6 10 15 25 30 50 75 150
156 - 12 - 1 2 3 4 6 12 13 26 39 52 78 156
160 - 12 - 1 2 4 5 8 10 16 20 32 40 80 160
168 - 16 - 1 2 3 4 6 7 8 12 14 21 24 28 42 56 84 168