Тема 25. Программирование - Обработка целочисленной информации

25.02 Поиск делителей

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование - обработка целочисленной информации
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#22669

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

Показать ответ и решение
def f(n):
    count = 0
    for i in range(1, int(n ** 0.5) + 1):
        if n % i == 0:
            count += 1
            if n // i != i:
                count += 1
    if count == 20:
        return True
    return False
i = 0
while not(f(i)):
    i += 1
print(i)

Ответ: 240

Ошибка.
Попробуйте повторить позже

Задача 2#27875

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

Показать ответ и решение
n = int(input())
res = 0
for i in range(1, int((n)**0.5) + 1):
    if (n % i == 0):
        res += 1
        if (n // i != i):
            res += 1
print(res)

Ответ:

Ошибка.
Попробуйте повторить позже

Задача 3#30190

Найти количество натуральных делителей у числа 55440.

Показать ответ и решение
def count_div(n):  # Счетчик всех делителей  
    k = 2  # 1 и само число - делители числа всегда  
    for i in range(2, int(n ** 0.5) + 1):  
        if n % i == 0:  
            k += 1  
            if n // i != i:  
                k += 1  
    return k  
 
 
print(count_div(55440))

Ответ: 120

Ошибка.
Попробуйте повторить позже

Задача 4#30191

Вывести в порядке возрастания все нетривиальные делители числа 49500.

Показать ответ и решение
def dividers(n):  # Отсортированный массив нетривиальных делителей  
    a = []  
    for i in range(2, int(n ** 0.5) + 1):  
        if n % i == 0:  
            a.append(i)  
            if n // i != i:  
                a.append(n// i)  
    a.sort()  
    return a

Ответ: 2 3 4 5 6 9 10 11 12 15 18 20 22 25 30 33 36 44 45 50 55 60 66 75 90 99 100 110 125 132 150 165 180 198 220 225 250 275 300 330 375 396 450 495 500 550 660 750 825 900 990 1100 1125 1375 1500 1650 1980 2250 2475 2750 3300 4125 4500 4950 5500 8250 9900 12375 16500 24750

Ошибка.
Попробуйте повторить позже

Задача 5#38815

Напишите программу, которая получает на вход число и возвращает количество его делителей. В ответе укажите количество делителей для числа 2004052336  .

Показать ответ и решение

Решение 1

count = 0
x = int(input())
for i in range(1, int(x ** 0.5) + 1):
    if x % i == 0:
        count += 1
        if x // i != i:
            count += 1
print(count)

 

Решение 2

a = set()
x = int(input())
for i in range(1, int(x ** 0.5) + 1):
    if x % i == 0:
        a.add(i)
        a.add(x // i)
print(len(a))

Ответ: 60
Рулетка
Вы можете получить скидку в рулетке!