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

Общие делители

20.01.2020, 13:47. Показов 1555. Ответов 15

Author24 — интернет-сервис помощи студентам
Для заданного целого положительного числа n найдите количество таких целых чисел x, лежащих в отрезке [1,n], что количество общих делителей у n и x равно заданному числу k. Например, если k=1, то требуется найти количество чисел, взаимнопростых c n, которые не превосходят его.

Входные данные
В единственной строке входных данных через пробел заданы два целых положительных числа n и k (1≤n,k≤5000).

Выходные данные
Выведите одно целое число — искомое количество.

Примеры

входные данные
2 1
выходные данные
1

входные данные
12 2
выходные данные
4

входные данные
13 1
выходные данные
12

входные данные
720 6
выходные данные
52
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2020, 13:47
Ответы с готовыми решениями:

Найти все общие делители
Задание легкое, если не одно но, нужно вывести сообщение о том, что числа не имеют общих делетелей,...

Зная простые делители числа и их количество, найти все делители числа
Добрый вечер. Есть задача: зная простые делители числа и их количество, найти все делители числа....

Делители
Делители Дано натуральное число n. Подсчитайте количество таких пар чисел (a;b), что: a и b —...

Делители числа
Поступает последовательность целых положительных чисел, 0 — конец последовательности. Определить,...

15
Status 418
Эксперт Python
4576 / 2343 / 602
Регистрация: 26.11.2017
Сообщений: 5,265
Записей в блоге: 3
20.01.2020, 15:09 2
И? Даже перебором не получается решить?
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
20.01.2020, 16:35  [ТС] 3
перебором - это как? Только начала программировать, не все пока знаю и понимаю.
0
Модератор
Эксперт Python
2687 / 1593 / 513
Регистрация: 21.02.2017
Сообщений: 4,209
Записей в блоге: 1
20.01.2020, 16:48 4
marylily, не знать что такое полный перебор и залезть в программирование, вы серьезно?
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
20.01.2020, 22:19  [ТС] 5
Я, в принципе, что такое перебор знаю, но как его засунуть в программу не знсю.
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.01.2020, 00:10 6
Добавлено через 1 минуту
Цитата Сообщение от marylily Посмотреть сообщение
перебором - это как?
Я.Лицей рулит)))
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def devis(a, b, n):
    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
 
 
if __name__ == '__main__':
    # a = int(input("Минимум: "))
    # b = int(input("Максимум: "))
    # n = int(input("Минимальное количество делителей: "))
    devis(a=1, b=14, n=2)
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
21.01.2020, 16:52  [ТС] 7
Цитата Сообщение от Dax Посмотреть сообщение
if __name__ == '__main__':
    # a = int(input("Минимум: "))
    # b = int(input("Максимум: "))
    # n = int(input("Минимальное количество делителей: "))
    devis(a=1, b=14, n=2)
А как сделать так, чтобы а и б вводились, а то такую форму я еще не проходила
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36570 / 20300 / 4218
Регистрация: 12.02.2012
Сообщений: 33,601
Записей в блоге: 13
21.01.2020, 17:15 8
Python
1
2
3
4
5
if __name__ == '__main__':
    a = int(input("Минимум: "))
    b = int(input("Максимум: "))
    n = int(input("Минимальное количество делителей: "))
    devis(a=1, b=14, n=2)
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
23.01.2020, 19:59  [ТС] 9
Цитата Сообщение от Dax Посмотреть сообщение
def devis(a, b, n):
    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
if __name__ == '__main__':
    # a = int(input("Минимум: "))
    # b = int(input("Максимум: "))
    # n = int(input("Минимальное количество делителей: "))
    devis(a=1, b=14, n=2)
Эта программа что-то не то считает.
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
23.01.2020, 21:55 10
marylily, жта программа счмиает для данных a= 1, b=14,n=2, если Вы не меняли ее текст.
данные я дал для проверки случайные
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
24.01.2020, 06:17  [ТС] 11
Если мне а и б ввести нужно, то мне просто это убрать, убрать эти значения?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36570 / 20300 / 4218
Регистрация: 12.02.2012
Сообщений: 33,601
Записей в блоге: 13
24.01.2020, 08:44 12
marylily, я тебе все написал, что нужно сделать.

Добавлено через 29 секунд
Убери три решетки
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
28.01.2020, 08:08  [ТС] 13
2 - 2 - 1 2
3 - 2 - 1 3
4 - 3 - 1 2 4
5 - 2 - 1 5
6 - 4 - 1 2 3 6
7 - 2 - 1 7
8 - 4 - 1 2 4 8
9 - 3 - 1 3 9
10 - 4 - 1 2 5 10
11 - 2 - 1 11
12 - 6 - 1 2 3 4 6 12
13 - 2 - 1 13
14 - 4 - 1 2 7 14



Вот это выдает. Что это такое, не то вообще.
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
29.01.2020, 18:50  [ТС] 14
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = int(input())
b = 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
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input())
k = int(input())
 
def all_deliteli(a,b):
n = 0
for i in range(1, min(a, b) + 1):
    if a % i == b % i == 0:
        n += 1
return n
count_chisel = 0
 
for x in range(1, n + 1):
    all_gcd = all_deliteli(x, n)
    if all_gcd == k: 
        count_chisel += 1 
print(count_chisel)
Ни одна программа не проходит. Подскажите, как исправить, пожалуйста
0
Status 418
Эксперт Python
4576 / 2343 / 602
Регистрация: 26.11.2017
Сообщений: 5,265
Записей в блоге: 3
29.01.2020, 18:53 15
marylily, Хватит копипастить чужие коды! Хоть одну строчку сами напишите, тогда может помогут!
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
29.01.2020, 18:56  [ТС] 16
Я поняла, извините, но у меня уже просто мысли собственные по-моему закончились
0
29.01.2020, 18:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2020, 18:56
Помогаю со студенческими работами здесь

Нетривиальные делители числа
Здравствуйте, вот условие задачи: Найдите числа, все нетривиальные делители которых образуют...

Нечетные делители чисел
a = 78 c = 0 b = 111 while b &lt;= 99: if b % 2 != 0: c = c + b b = b + 1...

Все простые делители числа
Здравствуйте, написал код для нахождения всех простых делителей числа, но он долго работает (я...

Вычислить делители большого целочисленного числа
Здравствуйте! Моя задача состоит в том, чтобы вычислить делители большого целочисленного числа....

Получить все простые делители числа
Дано натуральное число n. Получить все простые делители этого числа Перевести на Python CLS...

Найти все делители натурального числа
# TASK # Найти все делители данного натурального числа N. N = int (input ('Введите число: '))...


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

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

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