Galaxy773, у рандомно сгенерированного ключа может не быть приватной пары. Он сам может быть вообще невалиден. Например, в RSA приватный ключ - 2 больших простых числа. Случайная строка почти 100% не будет валидным приватным ключем.
Никита Савченко, вообще кривое условие. Глагола "power by" в английском языке нету. Тут уже только гадать можно, что именно хотел автор. Можно "raise to the power 2", "take 2nd power", но не вот это вот.
Че?! Скопируйте, что вам сказал компилятор. Не одно предложение, а всю ошибку - со строчкой в которой возникла ошибка, с цитатой вашего кода, с номером ошибки и всеми дополнительными данными от компилятора.
Вы там что-то про класс откопали где-то, вот компилятор хотя бы имя класса написал же?!
До мильена за несколько секунд вы сгенерируете на лету сами.
Но разложение любого числа до миллиона на множители алгоритмом из вопроса - это будет доли секунды. Поэтому тратить в сотни раз больше времени на расчет простых чисел, чтобы потом чуть быстрее разложить само число, нет никакого смысла. Даже если ограничиться только певрой сотней простых.
Поэтому я еще раз повторю: для разложения одного числа - быстрее метода нет (если не считать всякие микрооптимизации кода из вопроса для выигрыша 10-20%). Если чисел много, то уже появится смысл какие-то предподсчеты делать и решето из моего ответа тут будет самым эффективным методом.
Akina, по идее, надо считать и время рассчета этих простых чисел. Но даже если нет, то время их загрузки с диска будет все равно дольше метода в вопросе.
Это имеет смысл, когда вам надо много чисел раскладывать на множители. Тогда расчет/загрузка простых размажется по всем запросам.