Если это домашнее задание, я считаю, что вы должны перечитать свой лекционный материал.
В любом случае, вы знаете, что ваш номер составной и очень маленький, это нормально.
Длянаивное пробное деление со всеми числами, вам нужно не более sqrt (500000000) тестов - для наихудшего случая это примерно 22360 раз.Очевидно, что вы можете пропустить четные числа, так как они делятся на 2 (сначала проверьте это).Таким образом, это становится 11180 делений за 0,01 с.Если ваш компьютер может делать 1,1 М делений в секунду, то вы можете просто использовать наивный подход.
Или вы можете составить список простых чисел в автономном режиме, до sqrt (500M), а затем пробную попытку каждогоиз тех.Это еще больше сократит число делений.
Или, если факторы не слишком далеко друг от друга, вы можете попробовать метод Ферма.
Если это не сработает, вы можетепопробуйте использовать роу Полларда и другие.
Или, если это не домашняя работа, переформулируйте проблему, чтобы обойти ограничения (как некоторые предлагали, можете ли вы заранее вычислить факторизованные числа заранее и т.