Под С я понимаю сумму. Т.е. сложность, как вы справедливо заметили выше: «Сложность Вашего алгоритма — как минимум Ω(n^2). Самый худший для Вас вариант — это когда все номиналы — простые числа. » Только «как максимум»
И да, это вариация динамического программирования. Если для каждой точки запоминать результат, решение будет оптимальным.
Я бы сказал, что программы для ПЛИС — это чистая схемотехника, и ничего общего с программированием микроконтроллеров. Т.е. писать программу на verilog, всё равно что рисовать принципиальную (функциональную) схему. Как у художников, которые вроде рисуют, а говорят, что пишут картины. Просто надо это почувствовать, и твои картины(программы) будут отличаться от детсадовского рисунка. Как-то так.
И да, это вариация динамического программирования. Если для каждой точки запоминать результат, решение будет оптимальным.
Никаких стандартов, в т.ч. стандартных шин.