Мой первоначальный подход был очень похож на ваш и потребовалось целое время, чтобы получить результаты.
Этот сделал это за несколько секунд
Я умножил все простые числа в диапазоне от 1 до 20 (2, 3, 5, 7, 11, 13, 17, 19)
Идея состояла в том, что у простых чисел нет GCD, и наименьшее допустимое число должно быть их продукта.
acnum=0.0
testnum=9699690
divisor=20.0
while acnum==0.0:
if testnum%divisor==0.0:
divisor-=1.0
print testnum, divisor
else:
testnum+=9699690
divisor=20.0
if divisor==1.0:
acnum=testnum
Излишне говорить, что это далеко не идеальный код, но он выполнил свою работу.