наименьший делитель числа больший чем 2, числа в диапазоне от 3 до 10^12, программа должна работать меньше 2 секунд
vned:
жадный перебор не работает, если у вас тест на простоту через перебор от 3 до sqrt(n), то даже не беритесь
Все прекрасно работает. 0.01с на двенадцатиразрядном простом числе. Двухядерный старый процессор 3 гГц.
И еще: разберитесь, что такое жадные алгоритмы и чем он отличается от алгоритма перебора. Чтобы не смешить людей своими заявлениями.
Ответы
Ответ дал:
0
var
n, p: int64;
f: boolean;
begin
Read(n);
if n < 3 then
Write('Нет решения')
else
begin
f := false;
p := 3;
while (not f) and (sqr(p) <= n) do
begin
f := (n mod p = 0);
p := p + 1
end;
if f then
write(p - 1)
else
write(n);
end;
end.
скажу проще технокубок второй тур задача с вроде
. Правильный подмногоугольник
ограничение по времени на тест2 секунды
ограничение по памяти на тест512 мебибайт
вводстандартный ввод
выводстандартный вывод
Задан правильный N-угольник. Требуется выбрать наименьшее количество его вершин, которые также образуют правильный многоугольник.
Входные данные
Входные данные содержат одно целое число N (3≤N≤1012).
Выходные данные
Выведите одно число — наименьшее количество вершин заданного многоугольника, которые образуют правильный многоугольник.
ограничение по времени на тест2 секунды
ограничение по памяти на тест512 мебибайт
вводстандартный ввод
выводстандартный вывод
Задан правильный N-угольник. Требуется выбрать наименьшее количество его вершин, которые также образуют правильный многоугольник.
Входные данные
Входные данные содержат одно целое число N (3≤N≤1012).
Выходные данные
Выведите одно число — наименьшее количество вершин заданного многоугольника, которые образуют правильный многоугольник.
вот она
Ну я не собираюсь для вас кубки зарабатывать. Вы написали задачу - я ее сделал, тест у меня прошел. вчетверо быстрее ваших ограничений.
это не кубок
"кажу проще технокубок второй тур"
я ошибся
это не из него задача
Проверил сейчас неа числе Кэррола 274876858367 - 1, 06 с СТОКРАТНЫЙ прогон. Т.е. реально время составило 0.011 с. Так что не надо "ля-ля" и дурачков тут искать
Имело бы смысл сразу проверять на 999999999989 - это самое большое простое число, подходящее под условие. Но и на нём время существенно меньше двух секунд
Вас заинтересует
1 год назад
1 год назад
1 год назад
3 года назад
3 года назад