Для чисел, о которых вы говорите, самый быстрый способ факторинга (возможно) использовать Сито Эратосфена для генерации простых чисел примерно до квадратного корня из числа, а затем использовать пробное деление тех, кто находит один из которых является делителем.
Довольно много факторинговых методов были изобретены для больших чисел. Возможно, вам понадобится Google для «метода факторинга Ферма», «Поллард Ро», «Метод Брента», «Эллиптическая кривая Ленстра», «множественное многочленное квадратичное сито» и «общее полевое сито». Я перечислил их в (примерно) возрастающем порядке сложности и способности учитывать большее количество чисел. Я поставил вопрос о том, следует ли упоминать сито с общим номером или нет, хотя, хотя это самый эффективный метод, который в настоящее время известен для факторинга чрезвычайно больших чисел, он полезен только на действительно больших машинах - около 110 цифр или около того, MPQS быстрее, но для того, чтобы умножить большие числа, где работает GNFS, вам нужно намного больше памяти, чем может поддерживать обычный рабочий стол или сервер (подумайте о терабайте ОЗУ как минимальной начальной точке, но, вероятно, более того).
http://en.wikipedia.org/wiki/Integer_factorization –
Хммм .... возможно, это может быть перемещен в WWW. solvemyproblemoverflow.com – vfilby
Подсказка: q≈kp, поэтому n = pq≈kp². Другими словами, p≈√ (n/k). Поверните «≈» в точную границу, и у вас есть свой алгоритм. – ShreevatsaR