Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- /*
- Функция получения делителей числа N
- N - начальное число
- &divisor - ссылка на вектор, куда запишут результат
- */
- void getDivisor(int N, vector<int>& divisor){
- int i = 2;
- while(N!=1){
- if(N % i == 0){
- N /= i;
- divisor.push_back(i);
- } else {
- ++i;
- }
- }
- }
- int main() {
- int N;
- vector<int> divisor;
- cin >> N;
- getDivisor(N, divisor);
- for(int i=0; i<divisor.size(); ++i){
- cout << divisor[i] << endl;
- }
- return 0;
- }
- vector<int> primus(int max)
- {
- vector<int> p;
- vector<bool> prime(max+1, true);
- prime[0] = prime[1] = false;
- for(int i = 2; i<= max; ++i)
- if (prime[i] && (i*i <= max))
- {
- p.push_back(i);
- for(int j= i*i; j <= max; j+=i)
- prime[j] = false;
- }
- return p;
- }
- int main(int argc, const char * argv[])
- {
- vector<int> p = primus(28300);
- int N = 796400000;
- for(size_t i = 0; i < p.size() && N > p[i]; ++i)
- {
- while (N%p[i] == 0)
- {
- cout << p[i] << endl;
- N /= p[i];
- }
- }
- if (N > 1) cout << N << endl;
- }
Add Comment
Please, Sign In to add comment