Блог пользователя bilAktauAlmansur

Автор bilAktauAlmansur, история, 3 года назад, По-русски

Факторизация — разложение числа на простые множители.

include <bits/stdc++.h>

using namespace std;

vector factors;

bool is_prime(int x) {

//эта функция проверяет, является ли введенное число простым

for (int i = 2; i <= sqrt(x); i++) {

    if (x % i == 0) {

        return false;

    }

}

return true;

}

void factorize(int x) {

//эта функция, и есть наша факторизация

for (int i=2; i<=sqrt(x); i++) {

    while (x%i==0) {

        factors.push_back(i);

        x/=i;

    }

}



if (x!=1) {

    factors.push_back(x);

}

}

int main () {

int n;

cin>>n;

bool ok=is_prime(n);

if (ok==false) {

    factorize(n);

    for(int i = 0; i < factors.size(); i++) { 

       //выводим разложение числа на простые множители

       cout << factors[i] << ' ';

    }

    cout << endl;

}else {

    //число является простым

    cout << -1 << endl;

}

}

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится