Сегодня в школе на уроке математике проходят делимость. Чтобы продемонстрировать свойства делимости, учитель выписал на доске все целые числа от 1 до N в несколько групп, при этом если одно число делится на другое, то они обяза...

Сегодня в школе на уроке математике проходят делимость. Чтобы продемонстрировать свойства делимости, учитель выписал на доске все целые числа от 1 до N в несколько групп, при этом если одно число делится на другое, то они обязательно оказались в разных группах. Например, если взять N=10, то получится 4 группы. Первая группа: 1. Вторая группа: 2, 7, 9. Третья группа: 3, 4, 10. Четвертая группа: 5,6, 8. Вы уже догадались, что, поскольку любое число делится на 1, одна группа всегда будет состоять только из числа 1, но в остальном подобное разбиение можно выполнить различными способами. От вас потребуется определить минимальное число групп, на которое можно разбить все числа от 1 до N в соответствии с приведенным выше условием. Программа получает на вход одно натуральное число N, не превосходящее 10^9, и должна вывести одно число - искомое минимальное количество групп. Ввод: 10 Вывод: 4
Гость
Ответ(ы) на вопрос:
Гость
# Код на 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы