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

Ответы 3

  • мне бы на паскале
  • не знаю как это делать на паскале, слишком трудоемко
    • Автор:

      pierce
    • 6 лет назад
    • 0
  • # Код на ruby 2.2.3p173a = []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 == 0endp ap a.size
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years