Факторизация

Revision ru1, by bilAktauAlmansur, 2021-05-31 21:17:16

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

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;

}

}

Tags факторизация, факторизация чисел

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru2 Russian bilAktauAlmansur 2021-06-01 07:08:39 1 Мелкая правка: 'тели.\n\n#include <b' -> 'тели.\n\n# include <b'
ru1 Russian bilAktauAlmansur 2021-05-31 21:17:16 1022 Первая редакция (опубликовано)