Algorytm typu sprawdź wszystkie możliwe podzielniki, potrzebny często na maturę:


Do wykorzystania w zadaniu 63.3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <vector>
#include <iostream>

using namespace std;

vector <int> factors(int number)
{
 vector <int> czynniki;
 for (int i=2; i<=number; i++)
 { //dla wszystkich liczb od 2 do "zredukowanej" liczby number, która w pętli ulega dzieleniu przez kolejne podzielniki (redukcji)
   while (number % i == 0)
    { //dopóki liczba się dzieli przez to i
         number/=i; //to ją podziel
         czynniki.push_back(i); //i dodaj nowy czynnik do tablicy
    }
 }
 return czynniki; //vector daje nam możliwość prosto zwrócić całą tablicę.
}


int main()
{
    vector <int> czynniki = factors(12); //przykkładowy rozkład 12 = 2 * 2 * 3
    cout << "ile czynnikow: " << czynniki.size() << endl;
    for (int i=0; i<czynniki.size(); i++)
      cout << czynniki[i]<<" * ";
    return 0;
}