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

0 голосов
76 просмотров

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


Информатика (35 баллов) | 76 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

# Код на ruby 2.2.3p173
a = []
a << [1]<br>
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<br>            break
        end
    }
    a << [i] if f == 0<br>end

p a
p a.size

(55.0k баллов)
0

мне бы на паскале

0

не знаю как это делать на паскале, слишком трудоемко