В арифметике n-гладкое число , где n - это заданное простое число, математически определяется как положительное целое число, которое не имеет простых множителей больше, чем n. Например, 42 является 7-гладким, потому что все его простые множители меньше или равны 7, но 44 не является 7-гладким, потому что он также имеет 11 как главный фактор.
Определите довольно гладкое число как число без простых факторов, больших, чем его собственный квадратный корень. Таким образом, список довольно гладких чисел можно сформулировать следующим образом:
- (ИЗМЕНЕНО!) 1 - довольно гладкое число из-за полного отсутствия каких-либо основных факторов. (Обратите внимание, что в исходной версии этого вопроса 1 был ошибочно исключен из списка, поэтому, если вы исключите его из выходных данных, вы не будете помечены неправильно.)
- Между 4 (= 2 2 ) и 8 довольно гладкие числа являются 2-гладкими, что означает, что они имеют 2 в качестве единственного простого множителя.
- Между 9 (= 3 2 ) и 24 довольно гладкие числа являются 3-гладкими и могут иметь 2 и 3 в своих основных факторизациях.
- Между 25 (= 5 2 ) и 48 довольно гладкие числа являются 5-гладкими и могут иметь 2, 3 и 5 в своих основных факторизациях.
- И так далее, обновляя критерии каждый раз, когда достигается квадрат следующего простого числа.
Список довольно гладких чисел фиксирован и начинается следующим образом: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Ваша задача - написать код, который будет выводить все довольно гладкие числа вплоть до 10 000 включительно (= 100 2 ). Между каждым числом в списке и следующим должен быть хотя бы один разделитель (не имеет значения, какой это тип - пробел, запятая, новая строка и т. Д.), Но не имеет значения, какой символ используется.
Как обычно, выигрывает наименьшее количество байтов - очевидно, что просто вывод списка не будет слишком полезным для вас. Удачи!
1
)