Нарисовал запрос , который ищет первые 4 совершенных числа . Совершенными называются числа, которые равны сумме своих делителей, кроме самого числа. 6 это первое совершенное число, так как 6=1+2+3. Какие еще есть варианты для 1С ? Задача на разработку алгоритма для поиска совершенных чисел мне попадалась на infostart, как пример тестового задания.
Текст="ВЫБРАТЬ
| 0 КАК Разряд
|ПОМЕСТИТЬ мОснование
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 1
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 3
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 4
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 5
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 6
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 7
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| мОснование0.Разряд + 8 * (мОснование1.Разряд + 8 * (мОснование2.Разряд + 8 * мОснование3.Разряд)) КАК Ч
|ПОМЕСТИТЬ мЧисла
|ИЗ
| мОснование КАК мОснование0,
| мОснование КАК мОснование1,
| мОснование КАК мОснование2,
| мОснование КАК мОснование3
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| А.Ч КАК Лев,
| Б.Ч КАК Прав,
| А.Ч * Б.Ч КАК П
|ПОМЕСТИТЬ мПроизведения
|ИЗ
| мЧисла КАК А,
| мЧисла КАК Б
|ГДЕ
| А.Ч <= Б.Ч
| И А.Ч > 1
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| мПроизведения.П КАК П,
| СУММА(ВЫБОР
| КОГДА мПроизведения.Лев = мПроизведения.Прав
| ТОГДА мПроизведения.Лев
| ИНАЧЕ мПроизведения.Лев + мПроизведения.Прав
| КОНЕЦ) КАК СуммаМножителей
|ИЗ
| мПроизведения КАК мПроизведения
|
|СГРУППИРОВАТЬ ПО
| мПроизведения.П
|
|ИМЕЮЩИЕ
| СУММА(мПроизведения.Лев + мПроизведения.Прав) + 1 = мПроизведения.П";
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Каждое технологическое решение имеет границы применимости. 1С это не язык общего назначения, он не живет отдельно от своего фреймворка. 1С целесообразно применять когда вам нужно:
серверное приложение
приложение, где фигурируют финансы
с готовым UI, ORM, Reporting, XML/JSON/COM/PDF/YourDataTransferingFormat
с поддержкой фоновых процессов и заданий
с системой безопасности на основе ролей
со скриптуемой бизнес-логикой
с возможностью быстрого создания прототипа и низким time-to-market
1С вам не нужно, если вы хотите:
машинное обучение
расчеты на GPU
компьютерная графика
математические расчеты
CAD-систему
обработка сигналов (звук, видео)
highload http-вызовы с сотнями тысяч rps
Показатьсерверное приложение
приложение, где фигурируют финансы
с готовым UI, ORM, Reporting, XML/JSON/COM/PDF/YourDataTransferingFormat
с поддержкой фоновых процессов и заданий
с системой безопасности на основе ролей
со скриптуемой бизнес-логикой
с возможностью быстрого создания прототипа и низким time-to-market
1С вам не нужно, если вы хотите:
машинное обучение
расчеты на GPU
компьютерная графика
математические расчеты
CAD-систему
обработка сигналов (звук, видео)
highload http-вызовы с сотнями тысяч rps
а если воспользоваться свойством, что совершенное число равно pow(2, p) * (pow(2, p) - 1), то задача окажется еще проще) Тупо перебор у меня занял минуту, запрос тс 20 секунд, используя свойство выше менее секунды)
(14)
&НаСервере
Процедура Команда1НаСервере()
Начало = ТекущаяДата();
Количество = 0;
Для й = 2 ПО 30 Цикл
мн = pow(2, й) - 1;
Если ПростоеЧисло(мн) Тогда
рез = ((мн + 1) / 2) * мн;
Сообщить(рез);
Количество = Количество + 1;
КонецЕсли;
Если Количество = 10 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Конец = ТекущаяДата();
Сообщить(Конец-Начало);
КонецПроцедуры
Функция ПростоеЧисло(Число)
Для й = 2 ПО Цел(Число/2) Цикл
Если Число % й = 0 Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот