Як зменшити час виконання програми, написаної на з

yuharu. так я і написав як. Чи не перебирати всі числа, а спочатку зрозуміти, яке повинно бути розкладання на прості числа (факторизація). А потім просто взяти перші кілька простих чисел - тоді буде мінімальне число.

Твоє шукане число представляється в a * a *. * A * b * b *. * B * c.
де a, b, c - це різні прості числа.
наприклад
2 * 2 * 3 * 5 * 5

Дане розкладання можна розділити навпіл декількома різними способами
| aabcc
a | aabcc
aa | bcc
ab | abcc
.
і т.д.

Число таких варіантів поділу - це твоє k

Тобі треба знайти такі послідовності aabbc, які дають тобі саме заданий число поділів.

Після цього, як у тебе з'явилося кілька претендентів на поділ
наприклад aabbc і abcd
ти замість букв підставляєш перші кілька простих чисел - і дивишся якийсь варіант дасть мінімальне число.

Чим більше разів буква зустрічається - тим менше просте число повинне відповідати їй.
Але все одно може бути доведеться перевірити кілька варіантів.

код я розмістив на сайті в графі програмування - з ++
tlito.ru/node/203

у вас неправильний код, лише з деякими числами проходить, перевірте і переконайтеся в цьому самі :)

я помітив що не працював з 1, виправив: додав один рядок в початок функції повірка якщо к = 1. а з якими ще не працює? код і прінсткрін новий тут tlito.ru/node/203