number /= i;
), пока оно делится (может, придется кучу раз сокращать), то не надо внутреннего цикла - i всегда будет простым.#pragma once
- тоже вариант. Только оно не является стандартом. Если вам не нужно думать о переносимости кода, то можно об этом не беспокоится - оно распространено и наверняка работает во всех компиляторах, с которыми вы встретитесь.if ()
. У вас в коде она уже есть. Если вы его писали сами - вам не должно составить труда впендюрить туда один if и флаг нажатия конпки.
Вот этот код выведет все простые делители числа.
Идея в сокращении младшего простого делителя целиком. Этот код работает, потому что поддерживается инвариант, что number не делится ни на одно число, меньшее i. Поэтому, когда оно делится на i, то i простое.
По идее можно было бы гнать цикл пока i <= number, но можно делать i*i
Не совсем понял, какой метод вы в итоге используете, но возможно проблема с последним простым делителем. Может так получиться, что после какого-то сокращение number останется простым числом, меньшим i*i. Поэтому после цикла надо проверить, вдруг number не 1.