Вопрос задан 13.01.2019 в 16:40. Предмет Информатика. Спрашивает Есмурат Каракат.

Сегодня в школе на уроке математике проходят делимость. Чтобы продемонстрировать свойства

делимости, учитель выписал на доске все целые числа от 1 до N в несколько групп, при этом если одно число делится на другое, то они обязательно оказались в разных группах. Например, если взять N=10, то получится 4 группы. Первая группа: 1. Вторая группа: 2, 7, 9. Третья группа: 3, 4, 10. Четвертая группа: 5,6, 8. Вы уже догадались, что, поскольку любое число делится на 1, одна группа всегда будет состоять только из числа 1, но в остальном подобное разбиение можно выполнить различными способами. От вас потребуется определить минимальное число групп, на которое можно разбить все числа от 1 до N в соответствии с приведенным выше условием. Программа получает на вход одно натуральное число N, не превосходящее 10^9, и должна вывести одно число - искомое минимальное количество групп. Ввод: 10 Вывод: 4
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Смирнов Евгений.
# Код на ruby 2.2.3p173
a = []
a << [1]

for i in 2..10001
    f = 0
    a.each{ |group|
        m = 1
        group.each { |c|
            m *= i % c
        }
        f += m
        if m > 0
            group << i
            break
        end
    }
    a << [i] if f == 0
end

p a
p a.size
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос