Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<int> primus(int max)
- {
- vector<int> p { 2 };
- vector<bool> prime(max+1, true);
- prime[0] = prime[1] = false;
- for(int i = 3; i<= max; i += 2)
- if (prime[i])
- {
- p.push_back(i);
- if (i*i <= max)
- 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;
- }
- vector <int> getDivs(int n) {
- int q;
- vector <int> res;
- for (q=1; q*q<n; ++q) {
- if (n % q == 0) {
- res.push_back(q);
- res.push_back(n/q);
- }
- }
- if (q*q == n) {
- res.push_back(q);
- }
- return res;
- }
- #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;
- }
Add Comment
Please, Sign In to add comment