to Hex0gen:
Спасибо, но я уже и сам это понял.
to moron:
А с простыми делителями - есть другой способ:Есть N<=10**12 сначала возьмем цифру 2. Если N на нее делится - делим его и проверяем снова, и так далее пока нацело оно на 2 делится уже не будет. берем следующую цифру, проверяем делимость. Смысл в том, что следующее число, на которое будет делиться N - простое. и так далее до N/2, или пока N не станет = 1. Махсимум(если число N - простое) нам прийдется сделат 10**6 - 1 операцию, а это для современной машины это не проблема.
Метод, показанный здесь имеет ту же основу, что и решето, но не требует создания огромного массива с простыми числами.